模板构造函数和复制构造函数

时间:2018-12-23 09:16:30

标签: c++ c++11

为什么在下面的代码中调用模板构造函数而不是复制构造函数,所以当我在复制构造函数中删除'const'时,它将被调用。

#include <iostream>

struct foo{
    int a_;
    template <typename T>
    foo(T&& v) : a_{static_cast<int>(v)}
    {
    }

    foo(const foo& rhs) : a_{rhs.a_}
    {
    }

    operator std::uint8_t(){return a_;}
};


int main()
{
    foo bar1{256}, bar2{bar1};

    if(bar1.a_ == bar2.a_)
        std::cout << "hello!" << std::endl;
    return 0;
}

0 个答案:

没有答案