gpt4 book ai didi

C++ 构造函数 : using this_class (gcc vs visualc)

转载 作者:行者123 更新时间:2023-11-30 03:35:44 24 4
gpt4 key购买 nike

struct mystruct
{
using this_class = mystruct;
/*
old typedef such as:
typedef struct mystruct this_class;
also does not work
*/
this_class(){}
};

此代码在 Visual C++ 中运行良好,但在 gcc 或 clang 中失败。我怀疑即使使用 c++11、c++14 或 c++17 开关,它也可能不是 100% C++。

但是拥有一个 this_class typedef 是非常有用的,因为它允许通过简单地调整

使用 this_class = new_class_name

无需更改类定义中出现的所有类名。

当我从 visual c++ 移植我的代码时,gcc 和 clang 中是否有一个开关允许我继续使用这个有用的语句(在 visual c 中允许)?

注意:这与之前的问题不同:“我可以在 C++ 中实现自主的 self 成员类型吗?” ' 因为我想知道 clang 和 gcc 中是否有开关允许 visual c++ 中允许上述语句。我对另一个问题中显示的复杂黑客不感兴趣,只是对编译器之间的兼容性切换感兴趣

最佳答案

我会违反一个神圣的原则,但你可以用一个简单的宏来做到这一点。

#define THIS_CLASS mystruct

struct THIS_CLASS {

THIS_CLASS (){}
};

#undef mystruct

关于C++ 构造函数 : using this_class (gcc vs visualc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069735/

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