相关疑难解决方法(0)

如何使用clang ++与-std = c ++ 11 -Weverything -Werror

我想编译以下文件(temp.cpp):

#include <iostream> 

class Foo {
public:
  Foo() = default;
};

int main(){
  std::cout << "Works!" << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用以下命令: clang++ temp.cpp -o temp -std=c++11 -Weverything -Werror

有一个错误:

temp.cpp:5:11:错误:默认函数定义与C++ 98不兼容[-Werror,-Wc ++ 98-compat]

我知道有一个类似c ++ 98-compat的警告,它是一切的一部分.如何启用除c ++ 98-compat之外的所有警告?-Weverything是否有c ++ 11兼容标志?

c++ compilation clang compiler-warnings c++11

16
推荐指数
1
解决办法
6157
查看次数

强制C编译器生成整数缩小警告

让我们考虑以下示例:

#include <stdio.h>

void func(unsigned char c) {
   printf("0x%x\n", c);
}

int main() {
   int val = 0x11223344;
   func(val);
}
Run Code Online (Sandbox Code Playgroud)

据我所知,有没有办法我可以强制gcc,也没有clang,以示对语句的警告,func(val)对缩小int- > unsigned char会发生在那里.甚至没有编译-Wall -Wextra -pedantic.这个问题主要针对C代码,但也值得C++在讨论中包括世界(见下面的注释).

C++注意

我很清楚C++使用统一初始化语法存在一种解决方法:

func({val});
Run Code Online (Sandbox Code Playgroud)

但是,这并没有解决我的问题,因为:

  • 对于预先存在的代码,它需要更改
  • 对于新代码,它需要{}在任何地方使用

问题1

编译CC++编码时是否有任何神秘的选项可以实现?我很好也与非标准的解决方案,只要它的工作原理gccclang它并没有需要改变的代码.注意:我不是在寻找C++使用包含或不包含原始类型的宏的自定义整数类型的棘手解决方案.我正在寻找像命令行选项或pragma.同样,问题主要是针对C代码,但也值得探索任何C++解决方案.

问题2(后退) …

c compiler-warnings

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

标签 统计

compiler-warnings ×2

c ×1

c++ ×1

c++11 ×1

clang ×1

compilation ×1