79771792

Date: 2025-09-22 15:33:13
Score: 1
Natty:
Report link

Use trait struct like here: Using a nested name specifier in CRTP

#include <iostream>

template <typename TDerived>
struct traits;

template <typename TDerived>
struct Base
{
    int array[traits<TDerived>::NValue];
};

template <int N>
struct Derived : Base<Derived<N>>
{};

template <int N>
struct traits<Derived<N>> {
  constexpr static int NValue = N;
};


int main()
{
    Derived<8> derived;
    Base<decltype(derived)>& b = derived;
    std::cout << sizeof(b.array);
}
Reasons:
  • Probably link only (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: SLebedev777