proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
macros.hpp File Reference
Include dependency graph for macros.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proxsuite::linalg::veg::_detail::Wrapper< T >
 
struct  proxsuite::linalg::veg::_detail::_meta::enable_if< B, T >
 
struct  proxsuite::linalg::veg::_detail::_meta::enable_if< false, T >
 
struct  proxsuite::linalg::veg::_detail::_meta::uncvlref< T & >
 
struct  proxsuite::linalg::veg::_detail::_meta::uncvlref< T const & >
 
struct  proxsuite::linalg::veg::_detail::_meta::uncvlref< T volatile & >
 
struct  proxsuite::linalg::veg::_detail::_meta::uncvlref< T volatile const & >
 
struct  proxsuite::linalg::veg::_detail::_meta::unref< T & >
 
struct  proxsuite::linalg::veg::meta::static_const< T >
 
struct  proxsuite::linalg::veg::nb::unused
 
struct  proxsuite::linalg::veg::_detail::EmptyI< I >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_merge< integer_sequence< T, Nums1... >, integer_sequence< T, Nums2... > >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_merge_p1< integer_sequence< T, Nums1... >, integer_sequence< T, Nums2... > >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_make_integer_sequence< T, N, Even >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_make_integer_sequence< T, N, false >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_make_integer_sequence< T, 0 >
 
struct  proxsuite::linalg::veg::_detail::_meta::_detail::_make_integer_sequence< T, 1 >
 
struct  proxsuite::linalg::veg::_detail::SimpleLeaf< I, T >
 
struct  proxsuite::linalg::veg::_detail::SimpleITuple< _meta::integer_sequence< usize, Is... >, Ts... >
 
struct  proxsuite::linalg::veg::_detail::mem_ptr_type< Mem C::* >
 
struct  proxsuite::linalg::veg::_detail::member_extract_access< T >
 
struct  proxsuite::linalg::veg::_detail::member_extract_access< T >::DetectImpl< U, typename >
 
struct  proxsuite::linalg::veg::_detail::member_extract_access< T >::DetectImpl< U, typename U::_veglib_impl_member_extract::Type >
 
struct  proxsuite::linalg::veg::meta::constant< T, Value >
 
struct  proxsuite::linalg::veg::_detail::_meta::wrapper_base
 
struct  proxsuite::linalg::veg::_detail::_meta::wrapper< T >
 
struct  proxsuite::linalg::veg::Str
 
struct  proxsuite::linalg::veg::StrLiteralConstant< Cs >
 
struct  proxsuite::linalg::veg::_detail::Array_< T, N >
 
struct  proxsuite::linalg::veg::_detail::ExtractCharsImpl< LiteralType, _meta::integer_sequence< usize, Is... > >
 
struct  proxsuite::linalg::veg::_detail::ExtractCharsImplExpr< LiteralType, _meta::integer_sequence< usize, Is... > >
 

Namespaces

namespace  proxsuite
 
namespace  proxsuite::linalg
 
namespace  proxsuite::linalg::veg
 
namespace  proxsuite::linalg::veg::meta
 
namespace  proxsuite::linalg::veg::_detail
 
namespace  proxsuite::linalg::veg::_detail::_meta
 
namespace  proxsuite::linalg::veg::nb
 
namespace  proxsuite::linalg::veg::_detail::_meta::_detail
 
namespace  proxsuite::linalg::veg::concepts
 
namespace  proxsuite::linalg::veg::tags
 

Macros

#define PROXSUITE_PRETTY_FUNCTION   __PRETTY_FUNCTION__
 
#define PROXSUITE_THROW_PRETTY(condition, exception, message)
 
#define PROXSUITE_CHECK_ARGUMENT_SIZE(size, expected_size, message)
 
#define VEG_DEPRECATED(Reason)
 
#define VEG_UNUSED_VARIABLE(var)   (void)(var)
 Helper to declare that a parameter is unused.
 
#define VEG_ONLY_USED_FOR_DEBUG(var)
 
#define VEG_WRAP_SILENCE_WARNING(...)   __VA_ARGS__
 
#define VEG_HAS_NO_UNIQUE_ADDRESS   0
 
#define VEG_NO_UNIQUE_ADDRESS
 
#define VEG_INLINE   inline
 
#define VEG_NO_INLINE   HEDLEY_NEVER_INLINE
 
#define VEG_HAS_CONCEPTS   0
 
#define VEG_DECLVAL(...)   (std::declval<__VA_ARGS__>())
 
#define VEG_ARROW(...)
 
#define VEG_LAZY_BY_REF(...)   [&]() VEG_ARROW(__VA_ARGS__)
 
#define VEG_LIFT(...)    [&](auto&&... args) VEG_ARROW((__VA_ARGS__)(VEG_FWD(args)...))
 
#define VEG_DEDUCE_RET(...)
 
#define VEG_HAS_FOLD_EXPR   0
 
#define VEG_ALL_OF(...)
 
#define VEG_ANY_OF(...)
 
#define VEG_EVAL_ALL(...)
 
#define __VEG_IMPL_DEF_CONCEPT(Tpl, Name, Value, ...)
 
#define __VEG_NO_WARNING_PRAGMA_PUSH
 
#define __VEG_NO_WARNING_PRAGMA_POP
 
#define VEG_CONCEPT_EXPR(Tpl, TplNames, Name, Expr, ...)
 
#define VEG_CONCEPT_MACRO(Namespace, ...)   Namespace::__VA_ARGS__::value
 
#define __VEG_IMPL_ADD_VALUE(I, _, Param)    ((__VEG_PP_REMOVE_PAREN(Param)::value))
 
#define __VEG_IMPL_TRAIT(Param)   __VEG_PP_UNWRAP(Param)
 
#define __VEG_IMPL_PUT_TRAIT(I, _, Param)   __VEG_IMPL_TRAIT(Param)
 
#define VEG_CHECK_CONCEPT_MACRO(Namespace, ...)
 
#define VEG_DEF_CONCEPT(Tpl, Name, ...)
 
#define __VEG_IMPL_SFINAE(_, Param)
 
#define __VEG_IMPL_OVERLOAD(Name_Tpl, Param)
 
#define VEG_DEF_CONCEPT_BOOL_CONJUNCTION_IMPL(Tpl, Name, Base, Seq)
 
#define VEG_DEF_CONCEPT_BOOL_DISJUNCTION_IMPL(Tpl, Name, Base, Seq)
 
#define VEG_DEF_CONCEPT_CONJUNCTION(Tpl, Name, Terms)
 
#define VEG_DEF_CONCEPT_DISJUNCTION(Tpl, Name, Terms)
 
#define __VEG_IMPL_CONJUNCTION(Tuple)
 
#define __VEG_IMPL_DISJUNCTION(Tuple)
 
#define VEG_TEMPLATE(TParams, Constraint, Attr_Name, ...)
 
#define VEG_CONSTRAINED_MEMBER_FN(Constraint, Attr_Name, Params, ...)
 
#define VEG_TEMPLATE_CVT(TParams, Constraint, Attr, ...)
 
#define VEG_TEMPLATE_EXPLICIT( TParams, Constraint, Explicit_Cond, Attr_Name, Params, ...)
 
#define VEG_TEMPLATE_CVT_EXPLICIT( TParams, Constraint, Explicit_Cond, Attr, Type, ...)
 
#define __VEG_IMPL_PREFIX_requires
 
#define __VEG_IMPL_PREFIX_explicit
 
#define __VEG_IMPL_PARAM_EXPAND(I, _, Param)    __VEG_PP_TAIL Param __VEG_PP_HEAD Param
 
#define __VEG_IMPL_TEMPLATE2_HELPER_0(Constraint, Param)    __VEG_PP_TAIL Param __VEG_PP_HEAD Param
 
#define __VEG_IMPL_TEMPLATE2_HELPER_1(Constraint, Param)
 
#define __VEG_IMPL_TEMPLATE2_HELPER(I, Constraint, Param)
 
#define __VEG_IMPL_TEMPLATE(Attr_Name, TParams, Constraint, ...)
 
#define VEG_INLINE_VAR(Name, Obj)
 
#define VEG_INLINE_VAR_TEMPLATE(Tpl, Name, ...)   VEG_NOM_SEMICOLON
 
#define VEG_NIEBLOID(Name)   VEG_INLINE_VAR(Name, nb::Name)
 
#define VEG_NIEBLOID_TEMPLATE(Tpl, Name, ...)    VEG_INLINE_VAR_TEMPLATE(Tpl, Name, nb::Name<__VA_ARGS__>)
 
#define VEG_TAG(Name, Type)
 
#define VEG_TAG_TEMPLATE(Tpl, Name, Type, ...)
 
#define VEG_FWD(X)   static_cast<decltype(X)&&>(X)
 
#define VEG_FWD2(X)   static_cast<decltype(X)>(static_cast<decltype(X)&&>(X))
 
#define VEG_MOV(X)    static_cast<typename ::proxsuite::linalg::veg::uncvref_t<decltype(X)>&&>(X)
 
#define VEG_INSTANTIATE(Fn, ...)
 
#define __VEG_IMPL_INSTANTIATE(Fn, Name, ...)
 
#define VEG_INSTANTIATE_CLASS(Class, ...)   template struct Class<__VA_ARGS__>
 
#define VEG_NOM_SEMICOLON   static_assert(true, ".")
 
#define VEG_ID(id)   __VEG_PP_CAT(id, __COUNTER__)
 
#define VEG_DEF_CONCEPT_BUILTIN_OR_INTERNAL(Tpl, Name, ...)
 
#define __VEG_IMPL_UTF8_CONST(Literal)
 
#define VEG_DECLTYPE_VOID(...)   decltype(void(__VA_ARGS__))
 
#define VEG_BOOL_NOEXCEPT(...)    ::proxsuite::linalg::veg::meta::bool_constant<noexcept(__VA_ARGS__)>
 
#define VEG_CHECK_CONCEPT(...)    VEG_CHECK_CONCEPT_MACRO(::proxsuite::linalg::veg::concepts, __VA_ARGS__)
 
#define VEG_CONCEPT(...)    VEG_CONCEPT_MACRO(::proxsuite::linalg::veg::concepts, __VA_ARGS__)
 
#define __VEG_IMPL_GET_MEMBER_PTR(_, MemberPtr)   /* NOLINT */ , &Type::MemberPtr
 
#define __VEG_IMPL_GET_MEMBER_NAME_PTR(_, MemberPtr)
 
#define __VEG_IMPL_GET_MEMBER_NAME_LEN(_, MemberPtr)
 
#define __VEG_IMPL_STRUCT_SETUP(PClass, ...)
 
#define VEG_REFLECT(PClass, ...)   __VEG_IMPL_STRUCT_SETUP(PClass, __VA_ARGS__)
 

Typedefs

template<typename... >
using proxsuite::linalg::veg::meta::void_t = void
 
template<typename U , typename V >
using proxsuite::linalg::veg::_detail::_meta::discard_1st = V
 
using proxsuite::linalg::veg::usize = decltype(sizeof(0))
 
using proxsuite::linalg::veg::_detail::Empty = EmptyI<0>
 
using proxsuite::linalg::veg::_detail::EmptyArr = Empty[]
 
template<typename T , T N>
using proxsuite::linalg::veg::_detail::_meta::make_integer_sequence
 
template<usize N>
using proxsuite::linalg::veg::_detail::_meta::make_index_sequence = make_integer_sequence<usize, N>
 
template<typename... Ts>
using proxsuite::linalg::veg::_detail::SimpleTuple
 
template<bool B, typename T = void>
using proxsuite::linalg::veg::meta::enable_if_t
 
template<typename T >
using proxsuite::linalg::veg::meta::uncvref_t = typename _detail::_meta::uncvlref<T&>::type
 
template<bool B>
using proxsuite::linalg::veg::meta::bool_constant = constant<bool, B>
 
using proxsuite::linalg::veg::meta::true_type = bool_constant<true>
 
using proxsuite::linalg::veg::meta::false_type = bool_constant<false>
 
template<typename T , typename U >
using proxsuite::linalg::veg::_detail::_meta::is_same = decltype(wrapper<T>::test(static_cast<wrapper<U>*>(nullptr)))
 
using proxsuite::linalg::veg::_detail::NativeChar8 = meta::uncvref_t<decltype(u8""[0])>
 

Enumerations

enum struct  proxsuite::linalg::veg::CharUnit : unsigned char {
  proxsuite::linalg::veg::SPACE = 0x20 , proxsuite::linalg::veg::EXCLAMATION_MARK = 0x21 , proxsuite::linalg::veg::DOUBLE_QUOTE = 0x22 , proxsuite::linalg::veg::NUMBER = 0x23 ,
  proxsuite::linalg::veg::DOLLAR = 0x24 , proxsuite::linalg::veg::PERCENT = 0x25 , proxsuite::linalg::veg::AMPERSAND = 0x26 , proxsuite::linalg::veg::SINGLE_QUOTE = 0x27 ,
  proxsuite::linalg::veg::LEFT_PARENTHESIS = 0x28 , proxsuite::linalg::veg::RIGHT_PARENTHESIS = 0x29 , proxsuite::linalg::veg::ASTERISK = 0x2A , proxsuite::linalg::veg::PLUS = 0x2B ,
  proxsuite::linalg::veg::COMMA = 0x2C , proxsuite::linalg::veg::MINUS = 0x2D , proxsuite::linalg::veg::PERIOD = 0x2E , proxsuite::linalg::veg::SLASH = 0x2F ,
  proxsuite::linalg::veg::ZERO = 0x30 , proxsuite::linalg::veg::ONE = 0x31 , proxsuite::linalg::veg::TWO = 0x32 , proxsuite::linalg::veg::THREE = 0x33 ,
  proxsuite::linalg::veg::FOUR = 0x34 , proxsuite::linalg::veg::FIVE = 0x35 , proxsuite::linalg::veg::SIX = 0x36 , proxsuite::linalg::veg::SEVEN = 0x37 ,
  proxsuite::linalg::veg::EIGHT = 0x38 , proxsuite::linalg::veg::NINE = 0x39 , proxsuite::linalg::veg::COLON = 0x3A , proxsuite::linalg::veg::SEMICOLON = 0x3B ,
  proxsuite::linalg::veg::LESS_THAN = 0x3C , proxsuite::linalg::veg::EQUALITY_SIGN = 0x3D , proxsuite::linalg::veg::GREATER_THAN = 0x3E , proxsuite::linalg::veg::QUESTION_MARK = 0x3F ,
  proxsuite::linalg::veg::AT_SIGN = 0x40 , proxsuite::linalg::veg::UPPERCASE_A = 0x41 , proxsuite::linalg::veg::UPPERCASE_B = 0x42 , proxsuite::linalg::veg::UPPERCASE_C = 0x43 ,
  proxsuite::linalg::veg::UPPERCASE_D = 0x44 , proxsuite::linalg::veg::UPPERCASE_E = 0x45 , proxsuite::linalg::veg::UPPERCASE_F = 0x46 , proxsuite::linalg::veg::UPPERCASE_G = 0x47 ,
  proxsuite::linalg::veg::UPPERCASE_H = 0x48 , proxsuite::linalg::veg::UPPERCASE_I = 0x49 , proxsuite::linalg::veg::UPPERCASE_J = 0x4A , proxsuite::linalg::veg::UPPERCASE_K = 0x4B ,
  proxsuite::linalg::veg::UPPERCASE_L = 0x4C , proxsuite::linalg::veg::UPPERCASE_M = 0x4D , proxsuite::linalg::veg::UPPERCASE_N = 0x4E , proxsuite::linalg::veg::UPPERCASE_O = 0x4F ,
  proxsuite::linalg::veg::UPPERCASE_P = 0x50 , proxsuite::linalg::veg::UPPERCASE_Q = 0x51 , proxsuite::linalg::veg::UPPERCASE_R = 0x52 , proxsuite::linalg::veg::UPPERCASE_S = 0x53 ,
  proxsuite::linalg::veg::UPPERCASE_T = 0x54 , proxsuite::linalg::veg::UPPERCASE_U = 0x55 , proxsuite::linalg::veg::UPPERCASE_V = 0x56 , proxsuite::linalg::veg::UPPERCASE_W = 0x57 ,
  proxsuite::linalg::veg::UPPERCASE_X = 0x58 , proxsuite::linalg::veg::UPPERCASE_Y = 0x59 , proxsuite::linalg::veg::UPPERCASE_Z = 0x5A , proxsuite::linalg::veg::LEFT_SQUARE_BRACKET = 0x5B ,
  proxsuite::linalg::veg::BACKSLASH = 0x5C , proxsuite::linalg::veg::RIGHT_SQUARE_BRACKET = 0x5D , proxsuite::linalg::veg::CARET = 0x5F , proxsuite::linalg::veg::GRAVE = 0x60 ,
  proxsuite::linalg::veg::LOWERCASE_A = 0x61 , proxsuite::linalg::veg::LOWERCASE_B = 0x62 , proxsuite::linalg::veg::LOWERCASE_C = 0x63 , proxsuite::linalg::veg::LOWERCASE_D = 0x64 ,
  proxsuite::linalg::veg::LOWERCASE_E = 0x65 , proxsuite::linalg::veg::LOWERCASE_F = 0x66 , proxsuite::linalg::veg::LOWERCASE_G = 0x67 , proxsuite::linalg::veg::LOWERCASE_H = 0x68 ,
  proxsuite::linalg::veg::LOWERCASE_I = 0x69 , proxsuite::linalg::veg::LOWERCASE_J = 0x6A , proxsuite::linalg::veg::LOWERCASE_K = 0x6B , proxsuite::linalg::veg::LOWERCASE_L = 0x6C ,
  proxsuite::linalg::veg::LOWERCASE_M = 0x6D , proxsuite::linalg::veg::LOWERCASE_N = 0x6E , proxsuite::linalg::veg::LOWERCASE_O = 0x6F , proxsuite::linalg::veg::LOWERCASE_P = 0x70 ,
  proxsuite::linalg::veg::LOWERCASE_Q = 0x71 , proxsuite::linalg::veg::LOWERCASE_R = 0x72 , proxsuite::linalg::veg::LOWERCASE_S = 0x73 , proxsuite::linalg::veg::LOWERCASE_T = 0x74 ,
  proxsuite::linalg::veg::LOWERCASE_U = 0x75 , proxsuite::linalg::veg::LOWERCASE_V = 0x76 , proxsuite::linalg::veg::LOWERCASE_W = 0x77 , proxsuite::linalg::veg::LOWERCASE_X = 0x78 ,
  proxsuite::linalg::veg::LOWERCASE_Y = 0x79 , proxsuite::linalg::veg::LOWERCASE_Z = 0x7A , proxsuite::linalg::veg::LEFT_CURLY_BRACKET = 0x7B , proxsuite::linalg::veg::VERTICAL_BAR = 0x7C ,
  proxsuite::linalg::veg::RIGHT_CURLY_BRACKET = 0x7D , proxsuite::linalg::veg::TILDE = 0x7E
}
 

Functions

template<typename... Types, typename... Args>
auto proxsuite::linalg::veg::print_types_halt (Args &&...) -> incomplete_t< Types..., Args... >
 
template<typename... Types, typename... Args>
 proxsuite::linalg::veg::VEG_CPP14 (constexpr) void print_types(Args &&...)
 
 proxsuite::linalg::veg::VEG_NIEBLOID (unused)
 
template<typename... Ts>
constexpr auto proxsuite::linalg::veg::_detail::make_simple_tuple (Empty, Ts... args) noexcept -> SimpleTuple< Ts... >
 
constexpr auto proxsuite::linalg::veg::_detail::all_of_slice (bool const *arr, usize size) VEG_NOEXCEPT -> bool
 
template<usize N>
constexpr auto proxsuite::linalg::veg::_detail::all_of (bool const (&lst)[N]) VEG_NOEXCEPT -> bool
 
 proxsuite::linalg::veg::concepts::VEG_DEF_CONCEPT_BUILTIN_OR_INTERNAL ((typename T, typename U), same, T, U)
 
 proxsuite::linalg::veg::tags::VEG_TAG (from_raw_parts, FromRawParts)
 
 proxsuite::linalg::veg::tags::VEG_TAG (safe, Safe)
 
 proxsuite::linalg::veg::tags::VEG_TAG (unsafe, Unsafe)
 
template<typename T >
constexpr auto proxsuite::linalg::veg::_detail::assert_complete () noexcept -> bool
 
template<typename LiteralType >
auto proxsuite::linalg::veg::_detail::extract_chars (LiteralType) -> typename ExtractCharsImpl< LiteralType, _meta::make_index_sequence< LiteralType::Size::value > >::Type
 
template<typename LiteralType >
auto proxsuite::linalg::veg::_detail::extract_chars_expr (LiteralType) -> typename ExtractCharsImplExpr< LiteralType, _meta::make_index_sequence< LiteralType::Size::value > >::Type
 

Macro Definition Documentation

◆ PROXSUITE_PRETTY_FUNCTION

#define PROXSUITE_PRETTY_FUNCTION   __PRETTY_FUNCTION__

Definition at line 15 of file macros.hpp.

◆ PROXSUITE_THROW_PRETTY

#define PROXSUITE_THROW_PRETTY ( condition,
exception,
message )
Value:
if (condition) { \
std::ostringstream ss; \
ss << "From file: " << __FILE__ << "\n"; \
ss << "in function: " << PROXSUITE_PRETTY_FUNCTION << "\n"; \
ss << "at line: " << __LINE__ << "\n"; \
ss << message << "\n"; \
throw exception(ss.str()); \
}
#define PROXSUITE_PRETTY_FUNCTION
Definition macros.hpp:15

Definition at line 18 of file macros.hpp.

◆ PROXSUITE_CHECK_ARGUMENT_SIZE

#define PROXSUITE_CHECK_ARGUMENT_SIZE ( size,
expected_size,
message )
Value:
if (size != expected_size) { \
std::ostringstream oss; \
oss << "wrong argument size: expected " << expected_size << ", got " \
<< size << "\n"; \
oss << "hint: " << message << std::endl; \
PROXSUITE_THROW_PRETTY(true, std::invalid_argument, oss.str()); \
}

Definition at line 28 of file macros.hpp.

◆ VEG_DEPRECATED

#define VEG_DEPRECATED ( Reason)

Definition at line 77 of file macros.hpp.

◆ VEG_UNUSED_VARIABLE

#define VEG_UNUSED_VARIABLE ( var)    (void)(var)

Helper to declare that a parameter is unused.

Definition at line 81 of file macros.hpp.

◆ VEG_ONLY_USED_FOR_DEBUG

#define VEG_ONLY_USED_FOR_DEBUG ( var)

Definition at line 85 of file macros.hpp.

◆ VEG_WRAP_SILENCE_WARNING

#define VEG_WRAP_SILENCE_WARNING ( ...)    __VA_ARGS__

Definition at line 96 of file macros.hpp.

◆ VEG_HAS_NO_UNIQUE_ADDRESS

#define VEG_HAS_NO_UNIQUE_ADDRESS   0

Definition at line 100 of file macros.hpp.

◆ VEG_NO_UNIQUE_ADDRESS

#define VEG_NO_UNIQUE_ADDRESS

Definition at line 110 of file macros.hpp.

◆ VEG_INLINE

#define VEG_INLINE   inline

Definition at line 118 of file macros.hpp.

◆ VEG_NO_INLINE

#define VEG_NO_INLINE   HEDLEY_NEVER_INLINE

Definition at line 123 of file macros.hpp.

◆ VEG_HAS_CONCEPTS

#define VEG_HAS_CONCEPTS   0

Definition at line 128 of file macros.hpp.

◆ VEG_DECLVAL

#define VEG_DECLVAL ( ...)    (std::declval<__VA_ARGS__>())

Definition at line 131 of file macros.hpp.

◆ VEG_ARROW

#define VEG_ARROW ( ...)
Value:
noexcept(noexcept((__VA_ARGS__)))->decltype((__VA_ARGS__)) \
{ \
return __VA_ARGS__; \
}

Definition at line 148 of file macros.hpp.

◆ VEG_LAZY_BY_REF

#define VEG_LAZY_BY_REF ( ...)    [&]() VEG_ARROW(__VA_ARGS__)

Definition at line 155 of file macros.hpp.

◆ VEG_LIFT

#define VEG_LIFT ( ...)     [&](auto&&... args) VEG_ARROW((__VA_ARGS__)(VEG_FWD(args)...))

Definition at line 157 of file macros.hpp.

◆ VEG_DEDUCE_RET

#define VEG_DEDUCE_RET ( ...)
Value:
noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) \
{ \
return __VA_ARGS__; \
} \
#define VEG_NOM_SEMICOLON
Definition macros.hpp:600

Definition at line 160 of file macros.hpp.

◆ VEG_HAS_FOLD_EXPR

#define VEG_HAS_FOLD_EXPR   0

Definition at line 176 of file macros.hpp.

◆ VEG_ALL_OF

◆ VEG_ANY_OF

◆ VEG_EVAL_ALL

#define VEG_EVAL_ALL ( ...)

◆ __VEG_IMPL_DEF_CONCEPT

#define __VEG_IMPL_DEF_CONCEPT ( Tpl,
Name,
Value,
... )
Value:
template<__VEG_PP_REMOVE_PAREN1(Tpl)> \
struct Name : __VA_ARGS__ \
{}

Definition at line 257 of file macros.hpp.

◆ __VEG_NO_WARNING_PRAGMA_PUSH

#define __VEG_NO_WARNING_PRAGMA_PUSH

Definition at line 268 of file macros.hpp.

◆ __VEG_NO_WARNING_PRAGMA_POP

#define __VEG_NO_WARNING_PRAGMA_POP

Definition at line 269 of file macros.hpp.

◆ VEG_CONCEPT_EXPR

#define VEG_CONCEPT_EXPR ( Tpl,
TplNames,
Name,
Expr,
... )

Definition at line 272 of file macros.hpp.

◆ VEG_CONCEPT_MACRO

#define VEG_CONCEPT_MACRO ( Namespace,
... )   Namespace::__VA_ARGS__::value

Definition at line 311 of file macros.hpp.

◆ __VEG_IMPL_ADD_VALUE

#define __VEG_IMPL_ADD_VALUE ( I,
_,
Param )    ((__VEG_PP_REMOVE_PAREN(Param)::value))

Definition at line 312 of file macros.hpp.

◆ __VEG_IMPL_TRAIT

#define __VEG_IMPL_TRAIT ( Param)    __VEG_PP_UNWRAP(Param)

Definition at line 314 of file macros.hpp.

◆ __VEG_IMPL_PUT_TRAIT

#define __VEG_IMPL_PUT_TRAIT ( I,
_,
Param )   __VEG_IMPL_TRAIT(Param)

Definition at line 316 of file macros.hpp.

◆ VEG_CHECK_CONCEPT_MACRO

#define VEG_CHECK_CONCEPT_MACRO ( Namespace,
... )
Value:
static_assert(decltype(Namespace::check_##__VA_ARGS__())::value, \
__VEG_PP_STRINGIZE(__VA_ARGS__) " failed")
#define __VEG_PP_STRINGIZE(...)

Definition at line 318 of file macros.hpp.

◆ VEG_DEF_CONCEPT

#define VEG_DEF_CONCEPT ( Tpl,
Name,
... )
Value:
Tpl, \
Name, \
(__VA_ARGS__), \
VEG_TEMPLATE( \
Tpl, \
requires(__VA_ARGS__), \
constexpr auto check_##Name, \
#define __VEG_IMPL_DEF_CONCEPT(Tpl, Name, Value,...)
Definition macros.hpp:257

Definition at line 321 of file macros.hpp.

◆ __VEG_IMPL_SFINAE

#define __VEG_IMPL_SFINAE ( _,
Param )
Value:
, ::proxsuite::linalg::veg::meta:: \
enable_if_t<__VEG_PP_ID(__VEG_PP_UNWRAP Param), int> = 0
#define __VEG_PP_ID(X)
#define __VEG_PP_UNWRAP(...)

Definition at line 333 of file macros.hpp.

◆ __VEG_IMPL_OVERLOAD

#define __VEG_IMPL_OVERLOAD ( Name_Tpl,
Param )
Value:
template<__VEG_PP_REMOVE_PAREN(__VEG_PP_TAIL Name_Tpl), \
typename ::proxsuite::linalg::veg::_detail::_meta:: \
enable_if<__VEG_PP_ID(__VEG_PP_UNWRAP Param), int>::type = 0> \
auto __VEG_PP_CAT(check_, __VEG_PP_HEAD Name_Tpl)() noexcept \
#define __VEG_PP_HEAD(...)
#define __VEG_PP_REMOVE_PAREN(...)
#define __VEG_PP_TAIL(...)
#define __VEG_PP_CAT(A,...)

Definition at line 337 of file macros.hpp.

◆ VEG_DEF_CONCEPT_BOOL_CONJUNCTION_IMPL

#define VEG_DEF_CONCEPT_BOOL_CONJUNCTION_IMPL ( Tpl,
Name,
Base,
Seq )
Value:
Name, \
(__VEG_PP_REMOVE_PAREN1(Base)::value), \
template<__VEG_PP_REMOVE_PAREN(Tpl) \
__VEG_PP_TUPLE_FOR_EACH(__VEG_IMPL_SFINAE, _, Seq)> \
auto check_##Name() noexcept -> ::proxsuite::linalg::veg::meta::true_type
#define __VEG_IMPL_SFINAE(_, Param)
Definition macros.hpp:333
#define __VEG_PP_REMOVE_PAREN1(...)

Definition at line 344 of file macros.hpp.

◆ VEG_DEF_CONCEPT_BOOL_DISJUNCTION_IMPL

#define VEG_DEF_CONCEPT_BOOL_DISJUNCTION_IMPL ( Tpl,
Name,
Base,
Seq )
Value:
Name, \
(__VEG_PP_REMOVE_PAREN1(Base)::value), \
__VEG_PP_TUPLE_FOR_EACH(__VEG_IMPL_OVERLOAD, (Name, Tpl), Seq) \
#define __VEG_IMPL_OVERLOAD(Name_Tpl, Param)
Definition macros.hpp:337

Definition at line 352 of file macros.hpp.

◆ VEG_DEF_CONCEPT_CONJUNCTION

#define VEG_DEF_CONCEPT_CONJUNCTION ( Tpl,
Name,
Terms )
Value:
Tpl, \
Name, \
#define VEG_DEF_CONCEPT_BOOL_CONJUNCTION_IMPL(Tpl, Name, Base, Seq)
Definition macros.hpp:344
#define __VEG_IMPL_CONJUNCTION(Tuple)
Definition macros.hpp:374
#define __VEG_IMPL_ADD_VALUE(I, _, Param)
Definition macros.hpp:312
#define __VEG_PP_TUPLE_TRANSFORM_I(Macro, Data, Tuple)

Definition at line 360 of file macros.hpp.

◆ VEG_DEF_CONCEPT_DISJUNCTION

#define VEG_DEF_CONCEPT_DISJUNCTION ( Tpl,
Name,
Terms )
Value:
Tpl, \
Name, \
#define __VEG_IMPL_DISJUNCTION(Tuple)
Definition macros.hpp:377
#define VEG_DEF_CONCEPT_BOOL_DISJUNCTION_IMPL(Tpl, Name, Base, Seq)
Definition macros.hpp:352

Definition at line 367 of file macros.hpp.

◆ __VEG_IMPL_CONJUNCTION

#define __VEG_IMPL_CONJUNCTION ( Tuple)

◆ __VEG_IMPL_DISJUNCTION

◆ VEG_TEMPLATE

#define VEG_TEMPLATE ( TParams,
Constraint,
Attr_Name,
... )
Value:
__VEG_IMPL_TEMPLATE(Attr_Name, \
TParams, \
__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Constraint), \
__VA_ARGS__)
#define __VEG_IMPL_TEMPLATE(Attr_Name, TParams, Constraint,...)
Definition macros.hpp:502
#define __VEG_PP_CAT2(A,...)

Definition at line 385 of file macros.hpp.

◆ VEG_CONSTRAINED_MEMBER_FN

#define VEG_CONSTRAINED_MEMBER_FN ( Constraint,
Attr_Name,
Params,
... )
Value:
(int _ = 0), \
requires(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Constraint) && \
Attr_Name, \
__VA_ARGS__
#define VEG_TEMPLATE(TParams, Constraint, Attr_Name,...)
Definition macros.hpp:385

Definition at line 401 of file macros.hpp.

◆ VEG_TEMPLATE_CVT

#define VEG_TEMPLATE_CVT ( TParams,
Constraint,
Attr,
... )
Value:
template<__VEG_PP_REMOVE_PAREN(TParams)> \
Attr operator ::proxsuite::linalg::veg::meta::enable_if_t< \
(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Constraint)), \
__VA_ARGS__>()

Definition at line 410 of file macros.hpp.

◆ VEG_TEMPLATE_EXPLICIT

#define VEG_TEMPLATE_EXPLICIT ( TParams,
Constraint,
Explicit_Cond,
Attr_Name,
Params,
... )
Value:
::proxsuite::linalg::veg::meta:: \
enable_if_t<(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Explicit_Cond)), int> = \
0), \
Constraint, \
explicit Attr_Name, \
__VA_ARGS__ \
::proxsuite::linalg::veg::meta::enable_if_t< \
!(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Explicit_Cond)), \
unsigned> = 0), \
Constraint, \
Attr_Name, \
__VA_ARGS__

Definition at line 434 of file macros.hpp.

◆ VEG_TEMPLATE_CVT_EXPLICIT

#define VEG_TEMPLATE_CVT_EXPLICIT ( TParams,
Constraint,
Explicit_Cond,
Attr,
Type,
... )
Value:
::proxsuite::linalg::veg::meta:: \
enable_if_t<(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Explicit_Cond)), int> = \
0), \
Constraint, \
explicit Attr, \
__VA_ARGS__ \
\
::proxsuite::linalg::veg::meta::enable_if_t< \
!(__VEG_PP_CAT2(__VEG_IMPL_PREFIX_, Explicit_Cond)), \
unsigned> = 0), \
Constraint, \
Attr, \
__VA_ARGS__
#define VEG_TEMPLATE_CVT(TParams, Constraint, Attr,...)
Definition macros.hpp:410

Definition at line 454 of file macros.hpp.

◆ __VEG_IMPL_PREFIX_requires

#define __VEG_IMPL_PREFIX_requires

Definition at line 476 of file macros.hpp.

◆ __VEG_IMPL_PREFIX_explicit

#define __VEG_IMPL_PREFIX_explicit

Definition at line 477 of file macros.hpp.

◆ __VEG_IMPL_PARAM_EXPAND

#define __VEG_IMPL_PARAM_EXPAND ( I,
_,
Param )    __VEG_PP_TAIL Param __VEG_PP_HEAD Param

Definition at line 479 of file macros.hpp.

◆ __VEG_IMPL_TEMPLATE2_HELPER_0

#define __VEG_IMPL_TEMPLATE2_HELPER_0 ( Constraint,
Param )    __VEG_PP_TAIL Param __VEG_PP_HEAD Param

Definition at line 489 of file macros.hpp.

◆ __VEG_IMPL_TEMPLATE2_HELPER_1

#define __VEG_IMPL_TEMPLATE2_HELPER_1 ( Constraint,
Param )
Value:

Definition at line 492 of file macros.hpp.

◆ __VEG_IMPL_TEMPLATE2_HELPER

#define __VEG_IMPL_TEMPLATE2_HELPER ( I,
Constraint,
Param )
Value:
__VEG_PP_CAT2(__VEG_IMPL_TEMPLATE2_HELPER_, \
(Constraint, Param)
#define __VEG_IMPL_PP_IS_1(X)
#define __VEG_IMPL_PP_INC(X)

Definition at line 497 of file macros.hpp.

◆ __VEG_IMPL_TEMPLATE

#define __VEG_IMPL_TEMPLATE ( Attr_Name,
TParams,
Constraint,
... )
Value:
template<__VEG_PP_REMOVE_PAREN(TParams)> \
__VEG_IMPL_TEMPLATE2_HELPER, Constraint, (__VA_ARGS__))
#define __VEG_IMPL_TEMPLATE2_HELPER(I, Constraint, Param)
Definition macros.hpp:497

Definition at line 502 of file macros.hpp.

◆ VEG_INLINE_VAR

#define VEG_INLINE_VAR ( Name,
Obj )
Value:
namespace /* NOLINT */ { \
constexpr auto const& Name = \
} \
static_assert((void(Name), true), ".")

Definition at line 523 of file macros.hpp.

◆ VEG_INLINE_VAR_TEMPLATE

#define VEG_INLINE_VAR_TEMPLATE ( Tpl,
Name,
... )   VEG_NOM_SEMICOLON

Definition at line 541 of file macros.hpp.

◆ VEG_NIEBLOID

#define VEG_NIEBLOID ( Name)    VEG_INLINE_VAR(Name, nb::Name)

Definition at line 545 of file macros.hpp.

◆ VEG_NIEBLOID_TEMPLATE

#define VEG_NIEBLOID_TEMPLATE ( Tpl,
Name,
... )    VEG_INLINE_VAR_TEMPLATE(Tpl, Name, nb::Name<__VA_ARGS__>)

Definition at line 547 of file macros.hpp.

◆ VEG_TAG

#define VEG_TAG ( Name,
Type )
Value:
namespace _ { \
template<int I> \
struct Type \
{ \
explicit Type() = default; \
}; \
} \
using Type = _::Type<0>; \
VEG_INLINE_VAR(Name, Type)

Definition at line 550 of file macros.hpp.

◆ VEG_TAG_TEMPLATE

#define VEG_TAG_TEMPLATE ( Tpl,
Name,
Type,
... )
Value:
template<__VEG_PP_REMOVE_PAREN(Tpl)> \
struct Type \
{ \
explicit Type() = default; \
}; \
VEG_INLINE_VAR_TEMPLATE(Tpl, Name, Type<__VA_ARGS__>)

Definition at line 561 of file macros.hpp.

◆ VEG_FWD

#define VEG_FWD ( X)    static_cast<decltype(X)&&>(X)

Definition at line 569 of file macros.hpp.

◆ VEG_FWD2

#define VEG_FWD2 ( X)    static_cast<decltype(X)>(static_cast<decltype(X)&&>(X))

Definition at line 570 of file macros.hpp.

◆ VEG_MOV

#define VEG_MOV ( X)     static_cast<typename ::proxsuite::linalg::veg::uncvref_t<decltype(X)>&&>(X)

Definition at line 573 of file macros.hpp.

◆ VEG_INSTANTIATE

#define VEG_INSTANTIATE ( Fn,
... )
Value:
Fn, \
__VEG_PP_CAT(__VEG_PP_CAT(_dummy_explicit_instantiation, __LINE__), \
__VEG_PP_CAT(_, __COUNTER__)), \
__VA_ARGS__)
#define __VEG_IMPL_INSTANTIATE(Fn, Name,...)
Definition macros.hpp:586

Definition at line 580 of file macros.hpp.

◆ __VEG_IMPL_INSTANTIATE

#define __VEG_IMPL_INSTANTIATE ( Fn,
Name,
... )
Value:
template<typename... Ts> \
struct Name \
{ \
void apply(Ts&&... args) \
{ \
Fn(VEG_FWD(args)...); \
} \
}; \
template struct Name<__VA_ARGS__>
#define VEG_FWD(X)
Definition macros.hpp:569

Definition at line 586 of file macros.hpp.

◆ VEG_INSTANTIATE_CLASS

#define VEG_INSTANTIATE_CLASS ( Class,
... )   template struct Class<__VA_ARGS__>

Definition at line 597 of file macros.hpp.

◆ VEG_NOM_SEMICOLON

#define VEG_NOM_SEMICOLON   static_assert(true, ".")

Definition at line 600 of file macros.hpp.

◆ VEG_ID

#define VEG_ID ( id)    __VEG_PP_CAT(id, __COUNTER__)

Definition at line 601 of file macros.hpp.

◆ VEG_DEF_CONCEPT_BUILTIN_OR_INTERNAL

#define VEG_DEF_CONCEPT_BUILTIN_OR_INTERNAL ( Tpl,
Name,
... )
Value:
Tpl, \
Name, \
VEG_HAS_BUILTIN_OR(__is_##Name, \
__is_##Name(__VA_ARGS__), \
(_detail::_meta::is_##Name<__VA_ARGS__>::value)))
#define VEG_DEF_CONCEPT(Tpl, Name,...)
Definition macros.hpp:321
#define VEG_HAS_BUILTIN_OR(Builtin, True, False)
Definition prologue.hpp:38

Definition at line 786 of file macros.hpp.

◆ __VEG_IMPL_UTF8_CONST

#define __VEG_IMPL_UTF8_CONST ( Literal)
Value:
[]() /* NOLINT */ noexcept { \
struct __VEG_PP_CAT(_veglib_type, __LINE__) \
{ \
static constexpr auto value() noexcept -> decltype(Literal) \
{ \
return Literal; \
} \
sizeof(value()) / sizeof(value()[0]) - 1>; \
}; \
return __VEG_PP_CAT(_veglib_type, __LINE__){}; \
}()))
auto extract_chars_expr(LiteralType) -> typename ExtractCharsImplExpr< LiteralType, _meta::make_index_sequence< LiteralType::Size::value > >::Type
Definition macros.hpp:1208
decltype(sizeof(0)) usize
Definition macros.hpp:702

Definition at line 1220 of file macros.hpp.

◆ VEG_DECLTYPE_VOID

#define VEG_DECLTYPE_VOID ( ...)    decltype(void(__VA_ARGS__))

Definition at line 1237 of file macros.hpp.

◆ VEG_BOOL_NOEXCEPT

#define VEG_BOOL_NOEXCEPT ( ...)     ::proxsuite::linalg::veg::meta::bool_constant<noexcept(__VA_ARGS__)>

Definition at line 1238 of file macros.hpp.

◆ VEG_CHECK_CONCEPT

#define VEG_CHECK_CONCEPT ( ...)     VEG_CHECK_CONCEPT_MACRO(::proxsuite::linalg::veg::concepts, __VA_ARGS__)

Definition at line 1241 of file macros.hpp.

◆ VEG_CONCEPT

#define VEG_CONCEPT ( ...)     VEG_CONCEPT_MACRO(::proxsuite::linalg::veg::concepts, __VA_ARGS__)

Definition at line 1243 of file macros.hpp.

◆ __VEG_IMPL_GET_MEMBER_PTR

#define __VEG_IMPL_GET_MEMBER_PTR ( _,
MemberPtr )   /* NOLINT */ , &Type::MemberPtr

Definition at line 1246 of file macros.hpp.

◆ __VEG_IMPL_GET_MEMBER_NAME_PTR

#define __VEG_IMPL_GET_MEMBER_NAME_PTR ( _,
MemberPtr )
Value:
/* NOLINT */ \
static_cast<::proxsuite::linalg::veg::_detail::NativeChar8 const*>( \
__VEG_PP_CAT(u8, __VEG_PP_STRINGIZE(MemberPtr))),

Definition at line 1247 of file macros.hpp.

◆ __VEG_IMPL_GET_MEMBER_NAME_LEN

#define __VEG_IMPL_GET_MEMBER_NAME_LEN ( _,
MemberPtr )
Value:
/* NOLINT */ \
(sizeof(__VEG_PP_CAT(u8, __VEG_PP_STRINGIZE(MemberPtr))) - 1),

Definition at line 1250 of file macros.hpp.

◆ __VEG_IMPL_STRUCT_SETUP

#define __VEG_IMPL_STRUCT_SETUP ( PClass,
... )

Definition at line 1253 of file macros.hpp.

◆ VEG_REFLECT

#define VEG_REFLECT ( PClass,
... )   __VEG_IMPL_STRUCT_SETUP(PClass, __VA_ARGS__)

Definition at line 1309 of file macros.hpp.