我有一個模板類,它有一個拷貝構造函數:顯式模板特用於構造
template <>
template <>
ExampleClass<double,index_method>::ExampleClass<index_method>(const ExampleClass<double,index_method>& src_, const index_method& b_)
: _b(b_)
{
}
但它具有:
struct index_method {/*whatever*/};
template <class A, class B>
class ExampleClass
{
public:
ExampleClass(void) {}
template <class C>
ExampleClass(const ExampleClass<A,C>& src_, const B& b_ = B()) : _b(b_) { }
private:
B _b;
};
下面的模板構造專業化是由GCC 4.7.0編譯正確問題在MSVC:
基於另一個topic,我試過一個更簡單的代碼只適用於MSVC:
ExampleClass<double,index_method>::ExampleClass<index_method>(const ExampleClass<double,index_method>& src_, const index_method& method_)
: _b(method_)
{
}
但它也行不通。
有沒有什麼辦法可以在MSVC 2012中爲模板類指定一個模板拷貝構造函數?
opalenzuela:我拒絕你的編輯對不起,是我的錯。我提出了修改建議。非常感謝! – Naszta
clang 3.2也無法編譯下面的代碼,但有另一個錯誤。 錯誤:'ExampleClass'的外聯構造函數不能有模板參數 – ForEveR
下面的代碼如何http://ideone.com/7vgtxt? – ForEveR