- An observer is now mandatory to call function
gnx_freeze_obs is added to avoid a "partial specialization after instantiation" error.
This version uses some new features of C++11, but is still operational in C++03.
gnx_cpp11 is added to detect C++11.
gnx_remove_ref is added to remove the reference aspect of a type.
gnx_remove_const is added to remove the constant aspect of a type.
gnx_base_type is added to get the "base" of a type (i.e. without reference and constant aspects).
gnx_forward is added to allow "perfect forwarding" (C++11 only).
- Helper functions are added to get rid of the "typename" syntax:
gnx_remove_ref_t (C++11 only).
gnx_index_concept is variadic when C++11 is detected, which allows getting rid of the "comma" problem.
gnx_declare_[or|and|not]_concept are renamed
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).
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).
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).
gnx_add_uses is added to ease the association of a concept with a context (C++11 only).
gnx_index_concept is modified to correct a "partial specialization after instantiation" warning.
- Support for logical operations on concepts.
- An example is added to illustrate the new possibilities.
gnx_index_concept is added to enable indexing an existing type as a concept.
- Useless declarations are removed from the optimized version.
- Now the library has a name: C4TS++.
- The file structure is reorganized.
- For performance analysis, a generator of random instances is added.
gnx_declare_ns_concept is added to easily declare a concept inside a namespace.
gnx_best_concept is corrected.
gnx_enable_if is added to allow SFINAE (equivalent to
enable_if in Boost).
Also available in: Atom