gpt4 book ai didi

c++ - 在 C++ 中使所有类型默认为常量

转载 作者:IT老高 更新时间:2023-10-28 22:38:47 24 4
gpt4 key购买 nike

通过编译器选项、#defines、typedefs 或模板,向编译器指示的最简单和最不显眼的方式是什么?当我说 T 时,我真的是指 T const?我宁愿不使用外部预处理器。由于我不使用 mutable 关键字,因此将其重新用于指示可变状态是可以接受的。

编辑:因为这样做的意图完全是错误的(而且因为我有几个小时没来澄清),所以让我解释一下。本质上,我只想知道哪些系统可用于在编译时操作类型系统。我不在乎这是否会创建非标准、糟糕、不可维护、无用的代码。我不会在生产中使用它。这只是一种好奇心。

到目前为止的潜在(次优)解决方案:

// I presume redefinition of keywords is implementation-defined or illegal.
#define int int const
#define ptr * const
int i(0);
int ptr j(&i);

typedef int const Int;
typedef int const* const Intp;
Int i(0);
Intp j(&i);

template<class T>
struct C { typedef T const type; typedef T const* const ptr; };
C<int>::type i(0);
C<int>::ptr j(&i);

最佳答案

采用开源 C++ 编译器并对其进行修改。

我认为投反对票的主要原因是人们认为您正在尝试修改 C++。相反,请告诉他们您正在创建一种名为“C-const”的新语言作为大学项目。

我个人认为这是一个有趣的想法 - 您可以从不可变类型中获得各种性能和可读性 yield - 只需看看大多数函数式语言。

关于c++ - 在 C++ 中使所有类型默认为常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762950/

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