В шаблоне С++ с общим типом T я могу использовать
const T &
чтобы получить ссылку на константу T. Однако если теперь T сам является ссылочным типом (например, T = int &), вышеуказанный термин разрешает
int &
а не
const int &
что вполне имеет смысл, поскольку любая ссылка сама по себе всегда постоянна. Тем не менее, есть ли еще способ потребовать
const T &
если сам T является ссылочным типом?
Изменить: пример кода для оценки (компилятор g++):
template <typename T> class TemplateClass
{
public:
void foo(const T &bar) { }
};
int main()
{
TemplateClass<int &> x;
x.foo(0); // <-- compile error: no conversion from int to int&
return 0;
}