gpt4 book ai didi

c++ - typedef 和 const 指针的容器

转载 作者:可可西里 更新时间:2023-11-01 16:57:08 25 4
gpt4 key购买 nike

下面这行代码编译得很好并且表现良好:

list<const int *> int_pointers;  // (1)

下面两行不是:

typedef int * IntPtr;
list<const IntPtr> int_pointers; // (2)

我得到完全相同的编译错误

list<int * const> int_pointers;  // (3)

我很清楚最后一行是不合法的,因为 STL 容器的元素需要是可分配的。为什么编译器将 (2) 解释为与 (3) 相同?

最佳答案

简答:

  1. 是指向常量整数的指针列表。
  2. 是指向整数的常量指针列表。
  3. 与2相同。

const(和 volatile)自然应该出现在它们限定的类型之后。之前写的时候,编译器会自动在内部重写:

const int *

成为

int const *

这是一个指向常量 int 的指针。由于指针本身仍然是可分配的,因此这些列表可以很好地编译。

关于c++ - typedef 和 const 指针的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com