类型推导保存引用和简历

时间:2019-04-07 16:05:31

标签: c++ templates

我已经阅读了Templete函数,从推导的类型中删除了引用和cv,但是在本示例中,我将类型T推导出为const int&
您能否在描述这种情况的参考文献中为我提供帮助(cppreference或Mayers)

我正在使用MSVS 2017。

template <class T>
class MyClass {};

template <class T>
void boo(const MyClass<T>& mycl)
{
    MyClass<T> mycl2; //mycl2 is MyClass<const int&> instead of MyClass<int>
    T{}; //T is deduced as const int& !!!
}

void main()
{
    MyClass<const int&> mycl{};
    const MyClass<const int&>& mycl_ref = mycl;
    boo(mycl_ref);
}

0 个答案:

没有答案