Sygaldry
Loading...
Searching...
No Matches

Ensure T is not a union and is either scalar or aggregate. Doesn't catch inheritance! More...

Concept definition

template<typename T>
concept sygaldry::SimpleAggregate = not std::is_union_v<T>
&& ( std::is_aggregate_v<T>
|| std::is_scalar_v<T>
)
Ensure T is not a union and is either scalar or aggregate. Doesn't catch inheritance!
Definition sygac-components.hpp:41

Detailed Description

Ensure T is not a union and is either scalar or aggregate. Doesn't catch inheritance!

Note that this concept does not catch when T is a derived type; in this case you will likely trip an unholy compiler error with a long chain of template instantiations caused by an assertion in boost::pfr. The solution is to ensure that your type T does not inherit from any other type.