config.hpp File Reference

Go to the source code of this file.

Macros

#define ABL_STATEFUL_INTO   1
 When truish, into uses a stateful implementation that relies on the existence of an output iterator for the collection. More...
 
#define ABL_SAFE_ANY_STATE   0
 When tryish, dynamic type checks are performed when accessing the underlying state of any_state instances. More...
 
#define ABL_TRACE_ANY_STATE_ALLOC   0
 When tryish, messages are printed on the terminal when allocations are produced inside an any_state object. More...
 
#define ABL_REDUCE_TAIL_RECURSIVE   0
 When defined to 1, a tail-recursive definition will be used for the non-variadic reduce. More...
 
#define ABL_REDUCE_WITH_ACCUMULATE   0
 When defined to 1, std::accumulate will be used as an implementation for reduce() over one single collection. More...
 
#define ABL_REDUCE_ALWAYS_VARIADIC   0
 When defined to 1, reduce will used a variadic implementation also when one single input is provided. More...
 
#define ABL_MAKE_GCC_CRASH   !defined(__GNUC__) || defined(__clang__ ) || defined(__llvm__)
 There is a pattern in using with_state with deduced return types that is making GCC 5 go nuts. More...
 

Macro Definition Documentation

#define ABL_MAKE_GCC_CRASH   !defined(__GNUC__) || defined(__clang__ ) || defined(__llvm__)

There is a pattern in using with_state with deduced return types that is making GCC 5 go nuts.

This can be used to disable that code so at least we can try some other things with GCC.

Definition at line 87 of file config.hpp.

#define ABL_REDUCE_ALWAYS_VARIADIC   0

When defined to 1, reduce will used a variadic implementation also when one single input is provided.

Definition at line 78 of file config.hpp.

#define ABL_REDUCE_TAIL_RECURSIVE   0

When defined to 1, a tail-recursive definition will be used for the non-variadic reduce.

Definition at line 61 of file config.hpp.

#define ABL_REDUCE_WITH_ACCUMULATE   0

When defined to 1, std::accumulate will be used as an implementation for reduce() over one single collection.

In that case, halting reducing functions (e.g. take) might not work.

Definition at line 70 of file config.hpp.

#define ABL_SAFE_ANY_STATE   0

When tryish, dynamic type checks are performed when accessing the underlying state of any_state instances.

Useful when debugging transducer<> and stateful reducing functions.

Definition at line 44 of file config.hpp.

#define ABL_STATEFUL_INTO   1

When truish, into uses a stateful implementation that relies on the existence of an output iterator for the collection.

Otherwise, a mostly stateless implementation that uses emplace_back is used.

Definition at line 35 of file config.hpp.

#define ABL_TRACE_ANY_STATE_ALLOC   0

When tryish, messages are printed on the terminal when allocations are produced inside an any_state object.

Useful when debugging potential transducer<> related performance degradations.

Definition at line 53 of file config.hpp.

Fork me on GitHub