robclu / nano

C++ template metaprogramming library

Home Page:http://robclu.github.io/nano/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nano is a small C++ template metaprogramming libray

Nano

This library provides a collection of metaclasses and metafunctions, which are hopefully useful.

There are numerous other (better) metaprogramming libraries such as Boost.MPL, Meta, and Turbo, which is where I learnt tmp - by browsing through the code.

Most of the functionality at the moment is functionality I have needed for some other project I've been doing, which I then generalized on the off chance someone else may find it useful.

I've also tried to document the code well enough for others to learn from, since the learning curve for tmp can be steep. Additionally I have provided a test file using the Boost Test library, which should help to see how the library can be used with runtime code.

Documentation

The documentation, which includes usage examples as well as the doxygen generated documentation, can be found at Nano Documentation.

Install

nano is a header only library, so to use it you just need to include the header file:

#include "nano/nano.hpp"

so long as the dirctory is in your $PATH.

A Makefile is provided to install nano to /usr/local (all this does is move the nano folder to /usr/local which you can change by changing the INSTALL_DIR variable in the Makefile). Make sure to change it to a directory which is on your $PATH, or add it to your $PATH.

To install nano run:

sudo make install

You cna uninstall nano as follows:

sudo make uninstall

Compilers

Nano has been tested with the following compilers on ubuntu 15.04:

  • g++ - version 4.9.1
  • clang++ - version 3.6.1

Nano has not yet been tested on windows.

About

C++ template metaprogramming library

http://robclu.github.io/nano/

License:Apache License 2.0


Languages

Language:C++ 96.6%Language:CMake 3.4%