#include <iostream>
#include <type_traits>
using namespace std;
template<typename T>
void f(T&&)
{
cout << boolalpha << std::is_const_v<T> << endl;
cout << boolalpha << std::is_const_v<T&&> << endl;
}
int main()
{
const int n = 1;
f(n);
}
Вывод:
false
false
Здесь n
является очевидной константной переменной, почему std::is_const_v
ведет себя не так, как ожидалось?