- 103 名前:はちみつ餃子 mailto:sage [2022/11/12(土) 14:25:39.92 ID:5guAadWy0.net]
- >>90
要素のデフォルトコンストラクタは呼ばれるので要素のほうに適当なラッパーを被せるという方法はとれなくはない。 こういうラッパーならスタンダードレイアウトの要件は満たすのでバイト列レベルでも互換性は維持されるはず。 #include <array> #include <iostream> struct foo { // このコンストラクタを呼んで欲しい foo(int x){ std::cout << x << std::endl; } }; template <class T, auto N> struct initializing_wrapper : public T { initializing_wrapper(void) : T(N) {} }; int main() { std::array<initializing_wrapper<foo, 1> , 3> foo; }
|

|