1
我想創建一個模板函數,該函數既具有可從傳遞給該函數的參數中推導出的類型模板參數,也具有非類型模板參數將被明確地放置。似乎編譯器可以推導出每種類型,但是如果我指定了非類型模板參數,它需要所有模板參數。我可以只指定非類型的模板參數,還是全部或全部處理?具有非類型參數的調用模板函數explicit和類型參數隱式
#include <iostream>
#include <typeinfo>
template <typename T, bool bPrint=true>
void f(T var) {
if (bPrint)
std::cout << typeid(var).name() << std::endl;
}
int main() {
f(3); //works
f<false>(3); //error: template argument deduction/substitution failed
}
模板參數必須傳遞給在完全相同的順序模板中聲明,而實例... –