デフォルトのコンストラクターが許可する範囲を制限する非動的コンストラクターを定義する方法はありますか
struct foo {
int *bar;
};
static __thread foo myfoo[10] = {nullptr};
?
つまり、やりたい
class baz {
public:
baz() = default;
constexpr baz(decltype(nullptr)) : qux(nullptr) { }
private:
int *qux;
};
static __thread baz mybaz[10] = {nullptr};
そしてそれを機能させます。
現在、icpcは教えてくれます
main.cpp(9): error: thread-local variable cannot be dynamically initialized
static __thread baz mybaz[10] = {nullptr};
^