0
我有一個類foo與枚舉模板參數,由於某種原因,它鏈接到cpp文件中的ctor的兩個版本。常量模板參數類管理外部鏈接
enum Enum
{
bar,
baz
};
template <Enum version = bar>
class foo
{
public:
foo();
};
// CPP File
#include "foo.hpp"
foo<bar>::foo() { cout << "bar"; }
foo<baz>::foo() { cout << "baz"; }
我使用的msvc 2008,這是標準的行爲?
只有類型模板參數無法鏈接到cpp文件?
也許是因爲沒有引用? – sbi 2010-05-15 22:25:39
因爲通常當我鏈接到模板類時,它的成員不能在cpp文件中實現。 – 2010-05-15 22:26:19
@sbi:僅僅因爲它沒有被引用並不意味着它應該被剝離。編譯器「可能」剝離它,但它絕不保證。 @the_drow:如果您正在專門化模板,則可以在CPP文件中實施成員。 – Goz 2010-05-15 22:28:09