brunocodutra / Metal
Licence: mit
Love template metaprogramming
Stars: ✭ 265
Programming Languages
Labels
Projects that are alternatives of or similar to Metal
amazon-workmail-lambda-templates
Serverless applications for Amazon WorkMail.
Stars: ✭ 17 (-93.58%)
Mutual labels: templates
eRCaGuy dotfiles
.bashrc file, terminal prompt that shows current git branch, Arduino setup, Eclipse setup, git diff with line numbers, helpful scripts, improved Linux productivity, etc.
Stars: ✭ 84 (-68.3%)
Mutual labels: templates
xcode-config
My Xcode config - Alfred Workflow, File templates, Xcode code snippets, themes, IDETextKeyBindingSet
Stars: ✭ 16 (-93.96%)
Mutual labels: templates
starter-repo
Documentation templates for use in open source and open development projects
Stars: ✭ 39 (-85.28%)
Mutual labels: templates
Happy Spiders
🔧 🔩 🔨 收集整理了爬虫相关的工具、模拟登陆技术、代理IP、scrapy模板代码等内容。
Stars: ✭ 261 (-1.51%)
Mutual labels: templates
data
The data behind the Datenanfragen.de project. This contains a directory of contact information and privacy-related data on companies under the scope of the EU GDPR, a directory of supervisory authorities for privacy concerns, a collection of templates for GDPR requests and a list of suggested companies to send access requests to.
Stars: ✭ 61 (-76.98%)
Mutual labels: templates
Next-JS-Landing-Page-Starter-Template
🚀 Free NextJS Landing Page Template written in Tailwind CSS 3 and TypeScript ⚡️ Made with developer experience first: Next.js 12 + TypeScript + ESLint + Prettier + Husky + Lint-Staged + VSCode + Netlify + PostCSS + Tailwind CSS
Stars: ✭ 521 (+96.6%)
Mutual labels: templates
laravel-mjml
Laravel MJML offers support for rendering MJML syntax into in-line HTML that can be sent within mails.
Stars: ✭ 26 (-90.19%)
Mutual labels: templates
munhasir
Sample RESTful single page web app with Go, MongoDB and VueJS. A platform for keeping diaries for those who are cautious(or paranoid).
Stars: ✭ 24 (-90.94%)
Mutual labels: templates
mvcvm-swift-file-templates
Swift file templates for boosting mobile app development.
Stars: ✭ 16 (-93.96%)
Mutual labels: templates
Jinja2cpp
Jinja2 C++ (and for C++) almost full-conformance template engine implementation
Stars: ✭ 257 (-3.02%)
Mutual labels: templates
FlaxSamples
Collection of example projects for Flax Engine
Stars: ✭ 50 (-81.13%)
Mutual labels: templates
k6-template-typescript
Template to use TypeScript with k6
Stars: ✭ 90 (-66.04%)
Mutual labels: templates
Staradmin Free Vue Admin Template
Star Admin Vue Admin is a free admin template based on Bootstrap 4 and Vue.js.
Stars: ✭ 265 (+0%)
Mutual labels: templates
Cookie
A Template-based File Generator. Like cookiecutter but works with file templates instead of project templates.
Stars: ✭ 261 (-1.51%)
Mutual labels: templates
Metal
Metal is a single-header C++11 library designed to make you love template metaprogramming.
Overview
#include <metal.hpp>
// First we need some Values
union x { char payload[10]; };
class y { public: char c; };
struct z { char c; int i; };
// ... from which we construct some Lists
using l0 = metal::list<>;
using l1 = metal::prepend<l0, x>;
using l2 = metal::append<l1, z>;
using l3 = metal::insert<l2, metal::number<1>, y>;
static_assert(metal::same<l1, metal::list<x>>::value, "");
static_assert(metal::same<l2, metal::list<x, z>>::value, "");
static_assert(metal::same<l3, metal::list<x, y, z>>::value, "");
// Lists are versatile, we can check their sizes...
static_assert(metal::size<l0>::value == 0, "");
static_assert(metal::size<l1>::value == 1, "");
static_assert(metal::size<l2>::value == 2, "");
static_assert(metal::size<l3>::value == 3, "");
// retrieve their elements...
static_assert(metal::same<metal::front<l3>, x>::value, "");
static_assert(metal::same<metal::back<l3>, z>::value, "");
static_assert(metal::same<metal::at<l3, metal::number<1>>, y>::value, "");
// count those that satisfy a predicate...
static_assert(metal::count_if<l3, metal::trait<std::is_class>>::value == 2, "");
static_assert(metal::count_if<l3, metal::trait<std::is_union>>::value == 1, "");
// We can create new Lists by removing elements...
using l0_ = metal::drop<l3, metal::number<3>>;
using l1_ = metal::take<l3, metal::number<1>>;
using l2_ = metal::erase<l3, metal::number<1>>;
static_assert(metal::same<l0, l0_>::value, "");
static_assert(metal::same<l1, l1_>::value, "");
static_assert(metal::same<l2, l2_>::value, "");
// by reversing the order of elements...
static_assert(metal::same<metal::reverse<l0>, metal::list<>>::value, "");
static_assert(metal::same<metal::reverse<l1>, metal::list<x>>::value, "");
static_assert(metal::same<metal::reverse<l2>, metal::list<z, x>>::value, "");
static_assert(metal::same<metal::reverse<l3>, metal::list<z, y, x>>::value, "");
// by transforming the elements...
using l2ptrs = metal::transform<metal::lazy<std::add_pointer>, l2>;
using l3refs = metal::transform<metal::lazy<std::add_lvalue_reference>, l3>;
static_assert(metal::same<l2ptrs, metal::list<x*, z*>>::value, "");
static_assert(metal::same<l3refs, metal::list<x&, y&, z&>>::value, "");
// even by sorting them...
template<class x, class y>
using smaller = metal::number<(sizeof(x) < sizeof(y))>;
using sorted = metal::sort<l3, metal::lambda<smaller>>;
static_assert(metal::same<sorted, metal::list<y, z, x>>::value, "");
// that and much more!
Quick Start
- Download metal.hpp
#include </path/to/metal.hpp>
- Love template metaprogramming
Blazingly Fast
You don't need to just take my word for it, see for yourself at metaben.ch.
Portable
Metal is known to work on GCC 4.7+, Clang 3.8+ and on the latest releases of Visual Studio and Xcode.
Documentation
The complete up-to-date documentation is available online.
License
This project is licensed under the MIT.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].