常量模板参数类管理外部链接

时间:2010-05-15 22:13:23

标签: c++ templates

我有一个带有枚举模板参数的类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文件?

1 个答案:

答案 0 :(得分:2)

您正在专注于两种形式的构造函数。你为什么感到惊讶它链接两种形式?