icient run-time mathematical expression parser and evaluation engine. ExprTk supports numerous forms of functional, logical and vector processing semantics and is very easily extendible.  |  [ MIT ](https://opensource.org/licenses/MIT) |  header-only   
[ GiNaC ](https://www.ginac.de/) |  A library for creating integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation-intense numeric applications, graphical interfaces, etc.) under one roof.  |  [ GPLv3 ](https://www.gnu.org/licenses/gpl-3.0.html) |   
[ mathiu.cpp ](https://github.com/BowenFu/mathiu.cpp) |  A simple computer algebra system in C++17  |  Apache-2.0  |  cmake   
[ SEMT ](https://github.com/st-gille/semt) |  A compile-time symbolic differentiation  |  [ License ](https://github.com/st-gille/semt/blob/master/LICENSE) |  make   
[ SymbolicC++ ](https://issc.uj.ac.za/symbolic/symbolic.html) |  A general-purpose computer algebra system  |  [ GPLv2 ](https://www.gnu.org/licenses/gpl-2.0.html) |  autoconf   
[ SymCC ](https://www.s3.eurecom.fr/tools/symbolic_execution/symcc.html) |  A compiler wrapper which embeds symbolic execution into the program during compilation, and an associated run-time support library. In essence, the compiler inserts code that computes symbolic expressions for each value in the program. The actual computation happens through calls to the support library at run time.  |  [ GPLv3 ](https://github.com/eurecom-s3/symcc/blob/master/LICENSE) |  cmake   
[ SymEngine ](https://symengine.org) |  A standalone fast C++ symbolic manipulation library.  |  [ MIT ](https://github.com/symengine/symengine/blob/master/LICENSE) |  cmake   
[ ViennaMath ](https://viennamath.sourceforge.net) |  A symbolic math library that enables a convenient instantiation, manipulation, and evaluation of mathematical expressions at run time and compile-time.  |  [ MIT ](https://github.com/viennamath/viennamath-dev/blob/master/LICENSE) |  cmake   
  
##  [ [ edit ](/mwiki/index.php?title=cpp/links/libs&action=edit&section=28
"Edit section: Metaprogramming") ]  Metaprogramming

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ Boost.CallableTraits ](https://www.boost.org/doc/libs/release/libs/callable_traits/doc/html/index.html) |  A C++11/17 library for the compile-time inspection and manipulation of all 'callable' types. A successor to Boost.FunctionTypes.  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |  header-only   
[ Boost.Hana ](https://www.boost.org/doc/libs/release/libs/hana/doc/html/index.html) |  A new metaprogramming library for both types and values  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ Boost.Metaparse ](https://www.boost.org/doc/libs/release/doc/html/metaparse.html) |  A compile-time parser library, producing types, values, and metafunctions from compile-time strings  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ Boost.Mp11 ](https://www.boost.org/doc/libs/release/libs/mp11/doc/html/mp11.html) |  A C++11 metaprogramming library for compile-time manipulation of data structures that contain types.  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |  header-only   
[ Boost.MPL ](https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html) |  An original metaprogramming library, targeted at C++03, slow  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ Boost.PFR ](https://www.boost.org/doc/libs/release/doc/html/boost_pfr.html) |  A C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming.  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |  header-only   
[ Boost.Proto ](https://www.boost.org/doc/libs/release/doc/html/proto.html) |  A library for building expression template-backed EDSLs  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ Brigand ](https://github.com/edouarda/brigand) |  Uses eager metafunctions, optimized for best perf