如何專用具有參數參數的可變參數模板函數?具有const引用的可變參數模板特化
實施例:
template<typename T, typename... Args>
T foo(Args... args) = delete;
template<> int foo(int a, const char* str, const Test& t) { .... } // Fails to compile
//template<> int foo(int a, const char* str, Test) { .... } // Ok
int main() {
auto i = foo<int>(10, "test string!", t);
return 0;
}
當調用與聲明const Test&
參數函數foo時,編譯器沒有看到專門功能和回退,以刪除功能:
error: use of deleted function ‘T foo(Args ...) [with T = int; Args = {int, const char*, Test}]’
auto i = foo<int>(10, "test string!", t);
以上代碼編譯很好,如果我從參數中刪除const引用。我究竟做錯了什麼?
的代碼可以發現here
當然,我完全忘了顯式實例。感謝您的回答! – Bected