gpt4 book ai didi

c++ - typedef 声明语法

转载 作者:搜寻专家 更新时间:2023-10-31 00:48:25 25 4
gpt4 key购买 nike

几天前,我查看了 boost 源并发现了有趣的 typedef

“boost\detail\none_t.hpp”中有一段代码:

namespace boost {

namespace detail {

struct none_helper{};

typedef int none_helper::*none_t ;

} // namespace detail

} // namespace boost

我之前没有看到这样的语法,也无法解释它的含义。

这个 typedef 在 boost::detail 命名空间中引入名称“none_t”作为指向 int 的指针。

语法是什么?

typedef int none_helper::*none_t”和例如“typedef int *none_t”之间有什么区别?

最佳答案

语法是指向成员的指针 - 这里是 typedefs none_t作为指向 int 的指针none_helper 的数据成员.

可以使用语法,例如这样:

 struct X { int i; };

typedef int X::*PI;
PI pi = &X::i;
X* x = foo();
x->*pi = 42;

InformIT 有一个 article在成员指针上,包含更多详细信息。

关于c++ - typedef 声明语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667377/

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