structure.hpp File Reference
#include <atria/estd/type_traits.hpp>
#include <ableton/build_system/Warnings.hpp>
#include <boost/operators.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/fusion/include/fold.hpp>
#include <boost/fusion/include/comparison.hpp>
#include <boost/fusion/include/out.hpp>
#include <atomic>
#include <functional>
#include <iosfwd>
Go to the source code of this file.
Classes | |
struct | structure< T > |
struct | hash< atria::funken::structure< T > > |
Namespaces | |
atria | |
C++ amazing templates and reusable implementations awesomeness. | |
atria::funken | |
Provides a experimental library for writing epocal and functional data-models. | |
Macros | |
#define | ABL_FUNKEN_STRUCT(structure_full_name, structure_members) |
Functions | |
template<typename T > | |
bool | operator== (const structure< T > &a, const structure< T > &b) |
template<typename T > | |
bool | operator< (const structure< T > &a, const structure< T > &b) |
template<typename T > | |
auto | operator<< (std::ostream &os, const T &x) -> estd::enable_if_t< std::is_convertible< T &, structure< T > & >::value, std::ostream & > |
template<typename T > | |
auto | modified (T &) -> estd::enable_if_t<!std::is_convertible< T &, structure< T > & >::value > |
Call this on an structure value to indicate that is has indeed changed, invalidating its cached values. More... | |
template<typename T > | |
void | modified (structure< T > &x) |
Macro Definition Documentation
#define ABL_FUNKEN_STRUCT | ( | structure_full_name, | |
structure_members | |||
) |
Value:
BOOST_FUSION_ADAPT_STRUCT(structure_full_name, structure_members) \
namespace std { \
template<> \
struct hash<structure_full_name> \
: hash<atria::funken::structure<structure_full_name> > \
{}; \
} /* namespace std */ \
STL namespace.
Definition at line 186 of file structure.hpp.