我想使用N個參數創建可變參數模板,其中N也是模板參數。例如,具有正好n個參數的可變參數模板
template <int N, typename T[N]>
void function(T t[N]) {
// do stuff with t[0] through t[N-1]
}
(我知道上面是無效的語法)
我知道,一個方法來實現這一目標是使用static_assert
上sizeof...(ArgsT)
其中ArgsT
是一個可變參數模板定義(即template <typename ...ArgsT>
) 。
我只是想知道是否有更好的方法,不一定涉及static_assert
。
static_assert已編譯的一個不錯的失敗(堅持下去) –
總之,要在包大小不等於INT參數編譯時錯誤? 'static_assert'就是爲了這個,爲什麼它不是最好的方法呢? – Chnossos
你也可以用'std :: enable_if'來使用SFINAE。但我不確定這是否更好。 – Jarod42