명명 된 생성자 이디엄 인 이 make_foo()
이라고 가정 해 보겠습니다. 이제 정확히 123 개의 foo를 갖고 싶습니다. 그래서 std::array<foo_t, 123>
에 대해 생각하고 있습니다.기본이 아닌 구성 가능한 요소의 std :: array를 초기화 하시겠습니까?
std::array<foo_t, 123> pity_the_foos;
std::generate(
std::begin(pity_the_foos), std::end(pity_the_foos),
[]() { return make_foo(); }
);
을 밥의 삼촌, 오른쪽 : 이제 foo_t
은 기본적으로 작도 인 경우에, 나는 쓸 것인가? 아쉽게도 ... foo_t
에는 기본 ctor가 없습니다.
배열을 어떻게 초기화해야합니까? 아마도 몇 가지 가변적 인 템플릿 확장 부두를 사용해야합니까?
참고 : 답변을 C++ 11, C++ 14 또는 C++ 17에서 사용할 수 있습니다.
이 내용이 도움이 될 예정입니까? https://stackoverflow.com/a/19016627/8414561 –
@DevNull : 그렇습니다.하지만 그 배열 생성기 스 니펫은 얼마나 관용적입니까? – einpoklum
"관용"을 정의 하시겠습니까? :) –