Ссылка рушится?

Пытаясь решитьЭта проблемачто-то заставило меня задуматься. Рассмотрим следующий код:

template <typename T>
struct foo 
{
    foo(T const& x) : data(x) {}
    T data;
};

Кажется, что я могу построить объект типаfoo<T const&> без ошибок, гипотетическийT const& const& быть понятым какT const&.

Кажется также, что это называетсясвертывание ссылок, но я никогда не слышал этот термин раньше (см. комментарии в связанном вопросе).

Это широко распространено? Это стандарт?

Ответы на вопрос(2)

Ваш ответ на вопрос