proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
primitives.hpp
Go to the documentation of this file.
1#ifndef VEG_PRIMITIVES_HPP_A8O6GDV1S
2#define VEG_PRIMITIVES_HPP_A8O6GDV1S
3
6
7#if !VEG_HAS_BUILTIN(__is_integral) || \
8 !VEG_HAS_BUILTIN(__is_floating_point) || !(VEG_HAS_BUILTIN(__is_enum))
9#include <type_traits>
10#endif
11
12namespace proxsuite {
13namespace linalg {
14namespace veg {
15namespace concepts {
16namespace aux {
17VEG_DEF_CONCEPT(typename T, no_wraps_around, (T(-1) <= T(0)));
18VEG_DEF_CONCEPT(typename T, wraps_around, (T(-1) > T(0)));
19} // namespace aux
20
21VEG_DEF_CONCEPT(typename T,
24 __is_enum(T),
25 std::is_enum<T>::value));
33 ((, integral<T>), (aux::, no_wraps_around<T>)));
36 ((, integral<T>), (aux::, wraps_around<T>)));
37} // namespace concepts
38} // namespace veg
39} // namespace linalg
40} // namespace proxsuite
41
43#endif /* end of include guard VEG_PRIMITIVES_HPP_A8O6GDV1S */
#define VEG_DEF_CONCEPT_DISJUNCTION(Tpl, Name, Terms)
Definition macros.hpp:367
#define VEG_DEF_CONCEPT_CONJUNCTION(Tpl, Name, Terms)
Definition macros.hpp:360
#define VEG_DEF_CONCEPT(Tpl, Name,...)
Definition macros.hpp:321
#define VEG_HAS_BUILTIN_OR(Builtin, True, False)
Definition prologue.hpp:38
#define VEG_DEF_CONCEPT_FROM_BUILTIN_OR_STD(Tpl, Trait,...)
Definition prologue.hpp:50