std::array
C 영역에서는 std::array
다음 코드 조각을 고려하세요.
<code class="cpp">template<typename T, int N> void f(T value) { std::array<T, N> items = {value, value, value, value, value}; }</code>
간단하지만 값을 수동으로 반복하는 것은 다음과 같이 지루합니다. N이 증가합니다. 이 문제를 해결하기 위한 보다 우아한 접근 방식은 C 17의 구조화된 바인딩과 가변 템플릿을 활용하는 것입니다.
시퀀스 생성기와 반복 기능 활용
이 우아한 방식의 핵심 해결책은 시퀀스 유형 seq을 생성하는 데 있습니다. genseq_t<> 발전기. 이 시퀀스 유형을 사용하면 값과 생성된 시퀀스를 매개변수로 사용하고 std::array
구현예
<code class="cpp">template<typename T, int N> void f(T value) { // genseq_t<N> represents seq<0,1,...N-1> std::array<T, N> items = repeat(value, genseq_t<N>{}); }</code>
패턴 세부정보
이 기술을 사용하면 std::array
위 내용은 C에서 기본이 아닌 생성 가능 유형을 사용하여 `std::array`를 우아하게 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!