如果我有一個像C++模板化構造函數:它們是否阻止推斷某些類型?
struct Foo
{
template<class T>
Foo(T arg) { }
};
代碼並防止T
從以往任何時候都const
,volatile
,或參考?
同樣,如果我有
struct Bar
{
template<class T>
Bar(T const volatile &arg) { }
};
意思T
永遠不會const
,volatile
,或參考?
基本上,這是否意味着構造函數模板參數必須被推斷,即不能被指定爲推斷值以外的任何東西?
(1)否(2)是的。 –
@n.m .:有趣的是,爲什麼是(1)否? (什麼是反例?) – Mehrdad
嗯,其實這是錯誤的。 (1)似乎也是「是」,我會立刻挖掘參考。 –