赋值运算符在C ++中具有显式模板

时间:2013-11-11 11:22:20

标签: c++ templates operator-keyword

我想定义多种赋值运算符的方法。最小的示例代码。

enum class AssignType {
    DeepCopy,
    SharedCopy
};

struct Container
{
    const char* x;
    template<AssignType >
    Container& operator=(const Container& other) {
        x = other.x; return *this;
    }
    // ...some specialisations of operator=() could be made
};

int main()
{
    Container i1, i2;
    i2.operator=<AssignType::DeepCopy>(i1);
    i2 =<AssignType::DeepCopy> i1; // line 20
    return 0;
}

g ++的解析器给了我第20行的错误。有没有办法在显式模板中使用“短”形式的运算符(如第20行)?允许C ++ 11。

0 个答案:

没有答案