В шаблоне C ++ с универсальным типом 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;
}