# tlp **Repository Path**: joey-fudan/tlp ## Basic Information - **Project Name**: tlp - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-19 - **Last Updated**: 2021-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp ## README # 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 ~~~ bash git clone git@github.com:magicbowen/tlp.git ~~~ ### Install TLP ~~~bash 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. ~~~ bash 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: ~~~ bash 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.