37 #include <type_traits> 41 # define GUM_CAST dynamic_cast 43 # define GUM_CAST static_cast 44 #endif // GUM_DEBUG_MODE 65 template <
typename T1,
typename T2 >
66 ostream& operator<<(ostream& stream, const pair< T1, T2 >& val);
75 template <
typename T0,
typename... T >
76 std::ostream&
operator<<(std::ostream& os,
const std::tuple< T0, T... >& t);
86 template <
typename T >
87 ostream& operator<<(ostream& stream, const vector< T >& val);
97 template <
typename T >
122 template <
typename T1,
typename T2 >
124 typename std::enable_if< !std::is_same< T1, T2 >::value,
int >::type;
140 bool Memcmp(
const void*
const _in,
const void*
const _out,
unsigned long size);
151 template <
typename T >
157 return (std::abs(t2) > 1e-5);
159 return (std::abs(t2 - t1) / t1 > 1e-5);
167 template <
typename T >
169 bool operator()(
const T* t1,
const T* t2) {
return (t1 != t2); }
Template implementation for utilities for aGrUM.
bool hasUniqueElts(std::vector< T > const &x)
void __atexit()
Used for debug purpose.
bool Memcmp(const void *const _in, const void *const _out, unsigned long size)
Cross-platform replacement for memcmp.
gum is the global namespace for all aGrUM entities
Indicate whether two elements are (almost) different or not.
bool operator()(const T *t1, const T *t2)
ostream & operator<<(ostream &stream, const vector< T > &val)
'std::cout<<' operator for vectors.
typename std::enable_if< !std::is_same< T1, T2 >::value, int >::type forbidden_type
Forbidden_type<T1,T2> return the "int" type if T1 and T2 are of the same type, else nothing...
bool operator()(const T &t1, const T &t2)
Contains usefull methods to work with files and directories.
Utilities for manipulating strings.
Contains usefull methods for random stuff.
Implements a stream with the same behaviour as /dev/null.