Giter Site home page Giter Site logo

tlp's Introduction

TLP : coding by template meta programming in C++11!


Introduction

TLP is a C++ template programming package including below:

  • Compile-time base type NullType, EmptyType, IntType, BoolType and algorithms on them;

  • Compile-time data structure TypeList;

  • Base algorithms on TypeList such as Length, Append, Erase, Replace, Unique...

  • Advanced algorithms on TypeList such as Any, All, Filter, Map, Fold, Sort...

  • Template meta programming utils such as IsEqual, IfThenElse, Print...

  • Useful traits tools such as IsConvertible, IsBaseOf and several lambda traits tools;

  • Tools for simplify defination of compile-time meta functions;

  • A pure compile-time test framework for C++ template meta programming;

  • Samples for using TLP:

    • Pure compile-time computing for counting triangles.
    • Gof visitor design pattern generated by TLP.
    • A DSL for implementation of state machine in table format.

To learn more about tlp and how to do C++ template meta programming, please visit the doc folder!

Install and Test

Get TLP

git clone [email protected]:magicbowen/tlp.git

Install TLP

cd tlp
mkdir build
cd build
cmake ..
make
sudo make install

Test TLP

Tlp use its own test framework for testing.

Just compile the testcases for testing. If all tests are compiled ok, it means that all tests pass.

cd tlp
mkdir build
cd build
cmake -DENABLE_TEST=1 ..
make
./test/tlp-test

Run Samples

Samples include examples for how to using TLP.

Compile and run all the samples:

cd tlp
mkdir build
cd build
cmake -DENABLE_SAMPLE=1 ..
make
./samples/triangle/triangle
./samples/fsm/fsm
./samples/visitor/visitor

Supported Platform:

  • [MAC OS X] supported
  • [Linux] supported
  • [Windows] not supported

Supported Compilers:

  • [CLANG] 3.4 or later.
  • [GCC] 4.8 or later.
  • [MSVC] not supported.

tlp's People

Contributors

magicbowen avatar fingerballet avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.