0
考慮這個類:指定類模板參數值的一個任何
template<class T, int select>
class Foo()
{
public:
Foo() {}
~Foo() {}
Param<select> value;
void SomeInitialization();
...
}
我可以partialy指定SomeInitialization()函數沒有顯式地提select
價值在它的模板列表指標的影響?比如我想實現合併功能整合到單一的一個:
template<>
void Foo<SomeClass, 0>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 1>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 2>::SomeInitialization() { ... }
弄成這個樣子(僞):
template<>
void Foo<SomeClass>::SomeInitialization() { ... }
其中select
可以是任何值,因爲我SomeInitialization()
函數的代碼不無論如何使用它,上面的所有功能都有相同的代碼,但我必須複製粘貼它爲每個select
值。
我該如何做到這一點?請在我的文章中使用示例Foo
類提供答案。
@Yakk感謝您的修補程序。 – 2013-03-12 12:33:45
感謝您的回覆。但是如果我這樣做,當我嘗試訪問此函數內的類成員時出現錯誤 - 「標識符X未定義」。我使用MSVS 2012. – GuardianX 2013-03-12 13:04:57
順便說一句,在你提供的鏈接中,他只是使用float作爲類型,但我需要知道確切的值,因爲我的參數