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.

Fork me on GitHub