27 #include <ios/Logger.hpp> 28 #include <smet/BinarySmET.hpp> 29 #include <smet/Reference.hpp> 30 #include <smet/ScalarWrap.hpp> 35 #define PROVIDE_SMET_ASSIGNEMENT_OPERATOR(UNARY_SMET ) 37 template <typename Oth> 43 cout<<"Operator=, triggering assignement to "<<this<<" of "<<&oth<<endl; 45 assign(*this,forw<Oth>(oth)); 55 template <
typename _Ref1,
57 typename TK1=
typename RemRef<_Ref1>::Tk,
70 "Need to be able to convert the r.h.s into l.h.s fundamental types");
75 template <
typename TC,
84 CRASH<<
"Cannot refer to a TensComp which is not in the l.h.s";
111 #define PROVIDE_CONST_OR_NOT_DEFAULT_EVALUATOR(QUALIFIER) 113 template <typename...Args> 119 return ref2.eval(forw<Args>(args)...); 125 #undef PROVIDE_CONST_OR_NOT_DEFAULT_EVALUATOR 133 template <
typename Lhs,
#define STATIC_ASSERT_IS_SMET(...)
#define STATIC_ASSERT_ARE_N_TYPES(N, UNEXP_PARPACK)
Static assert if not passing exactly N types.
#define PROVIDE_TK(...)
Provides the Tk member.
#define PROVIDE_BINARY_SMET_SIMPLE_CREATOR(BINARY_SMET)
Defines a simple creator taking a reference.
#define PROVIDE_FUND(...)
Provides the Fund member.
#define CRASH
Initialize the crasher.
#define PROVIDE_GET_MERGED_COMPS_VIEW(DESCRIPTION,...)
Provides a getMergedCompsView method, taking Is as template parameter.
#define NON_CONST_QUALIF
Empty token to be used in macro expecting qualifier.
#define SFINAE_WORSEN_DEFAULT_VERSION_TEMPLATE_PARS
#define PROVIDE_CONST_OR_NOT_DEFAULT_EVALUATOR(QUALIFIER)
Provides either the const or non-const evaluator.
#define PROVIDE_BINARY_SMET_REFS
Provide the reference to the objects.
#define SFINAE_ON_TEMPLATE_ARG(...)
#define PROVIDE_POS_OF_TCS_IN_RES_TK_AND_MERGED_DELIMS_FOR_REF(ID)
#define SFINAE_WORSEN_DEFAULT_VERSION_ARGS_CHECK
Check that no extra arg is passed.
#define NOT_STORING
Set the SmET to not-storing.
decltype(auto) operator+(T1 &&smet1, T2 &&smet2)
Implement smet1+smet2.
#define FORWARD_IS_ALIASING_TO_PAIR_OF_REFS
#define PROVIDE_MERGEABLE_COMPS_ACCORDING_TO_TWO_REFS
#define CONST_QUALIF
Token to be used in macro indicating "const" keyword.
#define SFINAE_WORSEN_DEFAULT_VERSION_ARGS
Provide empty list of args, used to unprioritize default version.
#define DECLAUTO
Short name for decltype(auto)
#define DEFINE_BASE_TYPE(TYPE,...)