C++17\'s aggregate initialization for base class is awesome, but it is verbose when the base is only there to provide some functions (so no data members).
Here is mi
You can still provide constructor, for example:
template using always_t = T;
struct base_pod
{
// functions like friend compare operator
};
template struct der_pod_impl;
template
struct der_pod_impl> : base_pod
{
der_pod_impl(always_t... args) : k{args...} {}
T k[sizeof...(Is)];
};
template
using der_pod = der_pod_impl>;
Demo