簡易版
class C {
public:
static constexpr std::array<C, 2> foo {{"1"_C, "2"_C}};
int x;
constexpr C(char c) { x=c; }
}
constexpr C operator"" _C(const char * str, size_t n) { return C(*str); }
配列が定義されている行ではリテラルが理解されないため、これはうまくいきません。ただし、Cが不明なため、フリーリテラル関数を先に移動することはできません。
可変個引数テンプレートまたはそのような恐ろしいものをコードに追加することを含まない、このゴーディアンノットの解決策はありますか?