0
所以,我可以做到以下幾點:C++模板類聲明
template<typename T>
void printValue(T theValue)
{
std::cout << theValue;
}
int main()
{
/.....
int value = 5;
printValue(value);
return 0;
}
但是,如果我想要做一類以下內容:
template<class Type_T>
class Foo {
public:
template<typename Inverse>
Foo(Inverse begin, Inverse end)
: values(begin, end)
{
}
protected:
std::vector<Type_T> values;
};
int main() {
std::vector<int> va = {1, 2, 3, 4, 5, 6};
Foo<int> f(va.begin(), va.end());
return 0;
}
我必須聲明的類型。通過了解正在傳遞的迭代器的類型,編譯器是否有辦法確定類型?
將在'自動F =由當載體是在類中make_foo'? – Phorce
@ user1326876不,你會在你想使用'Foo'對象的地方調用它。 'make_foo'返回'Foo'對象,其中'U'自動從參數中推導出來。 'auto'是C++ 11引入的一個關鍵字,意思是:「根據我賦給我的變量推導類型」。 –
Paranaix