相关疑难解决方法(0)

编译器切换到c样式转换中禁用const_cast语义?

最近我偶然发现了这样的代码:

void foo(const Bar* b) {
  ...
  takes_nonconst_param_fn((Bar*)b);
  ...
Run Code Online (Sandbox Code Playgroud)

显然,开发人员并不知道他在做什么,但如果编译器没有默默地接受c-style-cast并且至少需要一个正确的const_cast,他可能会在提交之前有两次.

所以这让我思考,任何现代编译器是否都有一个开关来阻止const_castc-style-casts的语义?

防止所有出现的c-style-casts是不切实际的,并且允许它们static_reinterpret_语义(如果仅用于某些库代码)是必要的邪恶,但我的印象是,c-style-casts的合法用法被抛弃const在C++代码库中是非常罕见的,所以也许应该可以完全禁用它?

c++ casting const-cast compiler-options

6
推荐指数
1
解决办法
684
查看次数

标签 统计

c++ ×1

casting ×1

compiler-options ×1

const-cast ×1