什麼是在C++ 03的標準方法,在不使用升壓,要麼:如何爲另一個模板類型重載模板類方法?
- 重載其中模板類型僅出現在該方法的返回值的模板類方法,或
- 專營另一種模板類型的模板類方法。
換句話說,這怎麼能進行工作:
template <typename T, int N> struct Vector { T x[N]; };
struct Sampler
{
template <typename T>
T next() {
// Do some work and return a value of type T.
return T();
}
template <typename T, int N>
Vector<T, N> next() {
// Do some different work and return a value of type Vector<T, N>.
return Vector<T, N>();
}
};
int main() {
Sampler sampler;
sampler.next<double>();
sampler.next<Vector<float, 2> >();
return 0;
}
書面,電話next()
第一種方法,兩種用途,而我想第二次使用調用第二個方法。
由於這兩種方法都會調用默認的c'tor,所以在提供的情況下不需要第二種方法。 – StoryTeller
@StoryTeller返回值只是爲了編譯代碼,不關注它。 –