템플릿 함수 foo
을 일련의 다른 (유형이 아닌) 매개 변수로 호출하고 싶습니다. 상한과 하한 사이의 연속적인 정수 값을 사용합니다. 예를 들어 :여러 매개 변수 값이있는 템플릿 함수 호출
template <int K> void foo(){ ... }
int const UPPER = 10, LOWER = 5;
for(int i = LOWER; i <= UPPER; i++)
foo<i>();
이, 물론, i
은 컴파일 타임에 알려져 있지 않기 때문에 작동하지 않습니다. 내가 다음에 하나 개의 실행에서 UPPER
및 LOWER
변경에 대한 의도 때문에 특히입니다
foo<5>(); foo<6>(); foo<7>(); foo<8>(); foo<9>(); foo<10>();
: 내가 좋아하는 뭔가를 작성하지 않고도 프로그램의 종류를 달성 할 수있는 방법을 찾고 있어요. 배열의 요소가 일정한 있지만, i
가에 알 수없는, 다시
int const arr[6] = {5, 6, 7, 8, 9, 10};
for(int i = LOWER; i <= UPPER; i++)
foo<arr[i]>();
하지만, :
내 유일한 생각은 템플릿 매개 변수로 전송됩니다 정수의 일정한 배열을 만드는 것이 었습니다 컴파일 시간은 arr[i]
이 아닙니다. 어떤 제안?
미리 감사드립니다.
그것은 당신이 ['표준을 사용할 수 있습니다 같다 : : integer_sequence'] (http://en.cppreference.com/w/cpp/utility/integer_sequence) – NathanOliver
foo()를' 구조체 foowrapper '템플릿에 넣을 수 있습니다. ? –
lorro