通过尝试解决这个问题,有些事让我感到奇怪.请考虑以下代码:
template <typename T>
struct foo
{
foo(T const& x) : data(x) {}
T data;
};
Run Code Online (Sandbox Code Playgroud)
似乎我可以构造一个foo<T const&>没有错误的类型的对象,假设T const& const&被理解为T const&.
这似乎也被称为参考崩溃,但我之前从未听过这个术语(参见链接问题中的评论).
这是普遍的吗?这是标准吗?
c++ ×1