为什么在下面的代码中调用模板构造函数而不是复制构造函数,所以当我在复制构造函数中删除'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;
}