News
Version 2015-04-02 available
Major changes:
- An observer is now mandatory to call function gnx_matches
.
- Macro gnx_freeze_obs
is added to avoid a "partial specialization after instantiation" error.
Version 2015-02-27 available
This version uses some new features of C++11, but is still operational in C++03.
Major changes:
- Macro gnx_cpp11
is added to detect C++11.
- Macro gnx_remove_ref
is added to remove the reference aspect of a type.
- Macro gnx_remove_const
is added to remove the constant aspect of a type.
- Macro gnx_base_type
is added to get the "base" of a type (i.e. without reference and constant aspects).
- Function gnx_forward
is added to allow "perfect forwarding" (C++11 only).
- Helper functions are added to get rid of the "typename" syntax: gnx_base_type_t
, gnx_enable_if_t
, gnx_if_t
, gnx_remove_const_t
, gnx_remove_ref_t
(C++11 only).
- Macro gnx_index_concept
is variadic when C++11 is detected, which allows getting rid of the "comma" problem.
- Macros gnx_declare_[or|and|not]_concept
are renamed gnx_index_[or|and|not]_concept
.
- Macro gnx_best_concept
is modified to consider the "base" of a type instead of the type directly.
- Helper function gnx_best_concept_t
is added, which makes macro gnx_best_concept
obsolete (C++11 only).
- Function gnx_matches
is added to ease the test whether a type (or a concept) matches a concept or is the same as another type (C++11 only).
- Function gnx_add_models
is added to ease the declaration of a modeling (or refinement) relationship between a type (or a concept) and a concept (C++11 only).
- Function gnx_add_uses
is added to ease the association of a concept with a context (C++11 only).
Version 2014-03-14 available
Major changes:
- Macro gnx_index_concept
is modified to correct a "partial specialization after instantiation" warning.
Version 2012-04-16 available
Major changes:
- Support for logical operations on concepts.
- An example is added to illustrate the new possibilities.
Version 2012-04-11 available
Major changes:
- Macro gnx_index_concept
is added to enable indexing an existing type as a concept.
- Useless declarations are removed from the optimized version.
Version 2012-02-27 available
Major changes:
- Now the library has a name: C4TS++.
- The file structure is reorganized.
- For performance analysis, a generator of random instances is added.
Version 2011-08-25 available
Major changes:
- Macro gnx_declare_ns_concept
is added to easily declare a concept inside a namespace.
- Macro gnx_best_concept
is corrected.
- Metafunction gnx_enable_if
is added to allow SFINAE (equivalent to enable_if
in Boost).
Version 2010-12-07 available
(1-8/8)
Also available in: Atom