7

問題を次のように減らしました。

struct A {
    static constexpr std::size_t f() { return 4; }
};

template<std::size_t N>
struct B : A {
    alignas(A::f()) char a[N];
};

これの何が問題なのかわかりませんが、次を使用してコンパイルしようとするとg++:

main.cpp:9:19: error: expression 'A::f' is not a constant-expression
     alignas(A::f()) char a[N];
                   ^
main.cpp:9: confused by earlier errors, bailing out

複製はcoliruで入手できます。

4

1 に答える 1