template<typename T>
void f(T a, const T& b)
{
++a; // ok
++b; // also ok!
}
template<typename T>
void g(T n)
{
f<T>(n, n);
}
int main()
{
int n{};
g<int&>(n);
}
Обратите внимание: b
имеет постоянную const T&
и ++b
в порядке!
Почему const T&
не обязательно будет const?