Why does std::is_const::value evaluate to false?

后端 未结 2 1408
挽巷
挽巷 2020-12-11 17:23

This is a spin off of the question How to check if object is const or not?.

I was surprised to see the following program

#include 
#i         


        
2条回答
  •  半阙折子戏
    2020-12-11 18:08

    A const qualifier on a reference just means that the value can't be modified via the reference. It can still be modified by other means. For example:

    int a = 1;
    const int &b = a;
    
    std::cout << b << std::endl;  // Prints 1
    
    a = 2;
    
    std::cout << b << std::endl;  // Prints 2
    

    Thus, you can't assume that the value of a const reference is actually constant.

提交回复
热议问题