Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TypeTraits.h File Reference
#include "galois/substrate/CompilerSpecific.h"
#include <boost/mpl/has_xxx.hpp>

Go to the source code of this file.

Classes

struct  galois::DEPRECATED::has_deterministic_parallel_break< T >
 Indicates the operator has a member function that allows a galois::for_each loop to be exited deterministically. More...
 
struct  galois::DEPRECATED::has_deterministic_id< T >
 Indicates the operator has a member function that optimizes the generation of unique ids for active elements. More...
 
struct  galois::DEPRECATED::has_deterministic_local_state< T >
 Indicates the operator has a member type that encapsulates state that is passed between the suspension and resumpsion of an operator during deterministic scheduling. More...
 
struct  galois::DEPRECATED::needs_parallel_break< T >
 Indicates the operator may request the parallel loop to be suspended and a given function run in serial. More...
 
struct  galois::DEPRECATED::does_not_need_push< T >
 Indicates the operator does not generate new work and push it on the worklist. More...
 
struct  galois::DEPRECATED::needs_per_iter_alloc< T >
 Indicates the operator may request the access to a per-iteration allocator. More...
 
struct  galois::DEPRECATED::does_not_need_stats< T >
 Indicates the operator doesn't need its execution stats recorded. More...
 
struct  galois::DEPRECATED::does_not_need_aborts< T >
 Indicates the operator doesn't need abort support. More...
 
struct  galois::DEPRECATED::has_fixed_neighborhood< T >
 Indicates that the neighborhood set does not change, i.e., it is not dependent on computed values. More...
 
struct  galois::DEPRECATED::has_intent_to_read< T >
 
struct  galois::DEPRECATED::has_known_trivial_constructor< T >
 Temporary type trait for pre-C++11 compilers, which don't support exact std::is_trivially_constructible. More...
 
struct  galois::DEPRECATED::special_decay< T >
 Decay that handles std::ref. More...
 
struct  galois::DEPRECATED::special_decay< std::reference_wrapper< T > >
 

Namespaces

 galois
 The Galois namespace containing all Galois structures and functions.
 
 galois::DEPRECATED
 

Macros

#define GALOIS_HAS_MEM_FUNC(func, name)
 
#define GALOIS_HAS_MEM_FUNC_ANY(func, name)
 
#define GALOIS_HAS_MEM_TYPE(func, name)
 

Functions

 galois::DEPRECATED::GALOIS_HAS_MEM_FUNC (galoisDeterministicParallelBreak, tf_deterministic_parallel_break)
 
 galois::DEPRECATED::GALOIS_HAS_MEM_FUNC_ANY (galoisDeterministicId, tf_deterministic_id)
 
 galois::DEPRECATED::GALOIS_HAS_MEM_TYPE (GaloisDeterministicLocalState, tf_deterministic_local_state)
 

Macro Definition Documentation

#define GALOIS_HAS_MEM_FUNC (   func,
  name 
)
Value:
template <typename T, typename Sig> \
struct has_##name { \
typedef char yes[1]; \
typedef char no[2]; \
template <typename U, U> \
struct type_check; \
template <typename W> \
static yes& test(type_check<Sig, &W::func>*); \
template <typename> \
static no& test(...); \
static const bool value = sizeof(test<T>(0)) == sizeof(yes); \
}
#define GALOIS_HAS_MEM_FUNC_ANY (   func,
  name 
)
Value:
template <typename T> \
struct has_##name { \
typedef char yes[1]; \
typedef char no[2]; \
template <typename U, U> \
struct type_check; \
template <typename V> \
struct Sig { \
typedef V type; \
}; \
template <typename W> \
static yes& \
test(type_check<typename Sig<decltype(&W::func)>::type, &W::func>*); \
template <typename> \
static no& test(...); \
static const bool value = sizeof(test<T>(0)) == sizeof(yes); \
}
#define GALOIS_HAS_MEM_TYPE (   func,
  name 
)
Value:
template <typename T> \
struct has_##name { \
typedef char yes[1]; \
typedef char no[2]; \
template <typename W> \
static yes& test(typename W::func*); \
template <typename> \
static no& test(...); \
static const bool value = sizeof(test<T>(0)) == sizeof(yes); \
}