Initializing a constexpr with a const, — int vs float

前端 未结 2 1879
情歌与酒
情歌与酒 2021-01-17 08:05

I\'m wondering why the integer ii is initiallized at compile time, but not the float ff here:

int main() {
  const int i = 1;
  con         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-17 08:26

    In C++ constant integers are treated differently than other constant types. If they are initialized with a compile-time constant expression they can be used in a compile time expression. This was done so that array size could be a const int instead of #defined (like you were forced in C):

    (Assume no VLA extensions)

    const int s = 10;
    int a[s];          // OK in C++
    

提交回复
热议问题