Ссылка рушится?
Пытаясь решитьЭта проблемачто-то заставило меня задуматься. Рассмотрим следующий код:
template <typename T>
struct foo
{
foo(T const& x) : data(x) {}
T data;
};
Кажется, что я могу построить объект типаfoo<T const&>
без ошибок, гипотетическийT const& const&
быть понятым какT const&
.
Кажется также, что это называетсясвертывание ссылок, но я никогда не слышал этот термин раньше (см. комментарии в связанном вопросе).
Это широко распространено? Это стандарт?