草庐IT

c++ - 是否有一个 gcc 选项来假设所有 extern "C"函数不能传播异常?

有什么办法,除了在每个函数原型(prototype)上放置一个属性,让gcc知道C函数永远不会传播异常,即在extern"C"中声明的所有函数都应该是__attribute__((nothrow))?理想的是-f风格的命令行选项。 最佳答案 您始终可以使用-fno-exceptions,这将确保c++编译器不会生成异常传播代码。 关于c++-是否有一个gcc选项来假设所有extern"C"函数不能传播异常?,我们在StackOverflow上找到一个类似的问题:

c++ - 是否有一个 gcc 选项来假设所有 extern "C"函数不能传播异常?

有什么办法,除了在每个函数原型(prototype)上放置一个属性,让gcc知道C函数永远不会传播异常,即在extern"C"中声明的所有函数都应该是__attribute__((nothrow))?理想的是-f风格的命令行选项。 最佳答案 您始终可以使用-fno-exceptions,这将确保c++编译器不会生成异常传播代码。 关于c++-是否有一个gcc选项来假设所有extern"C"函数不能传播异常?,我们在StackOverflow上找到一个类似的问题:

android - -std=gnu++0x 和 -std=c++0x 之间的 GCC 有什么区别,应该使用哪一个?

我在使用时遇到问题使用-std=c++0x时在GCC4.4.3(适用于Android)中://using-std=c++0x#includeuint64_tvalue;//error:'uint64_t'doesnotnameatype但是使用-std=gnu++0x作品://using-std=gnu++0x#includeuint64_tvalue;//OK是与C++0x不兼容? 最佳答案 据我所知,我认为这可能是一个实现错误(或者实际上,由于C++0x没有发布,这不是一个错误本身,而是一个不完整的实现即将出台的标准的当前状态)

android - -std=gnu++0x 和 -std=c++0x 之间的 GCC 有什么区别,应该使用哪一个?

我在使用时遇到问题使用-std=c++0x时在GCC4.4.3(适用于Android)中://using-std=c++0x#includeuint64_tvalue;//error:'uint64_t'doesnotnameatype但是使用-std=gnu++0x作品://using-std=gnu++0x#includeuint64_tvalue;//OK是与C++0x不兼容? 最佳答案 据我所知,我认为这可能是一个实现错误(或者实际上,由于C++0x没有发布,这不是一个错误本身,而是一个不完整的实现即将出台的标准的当前状态)

c++ - GCC 允许从函数返回数组 - 错误还是功能?

我惊讶地发现,当使用尾随返回类型而不是普通返回类型时,GCC允许函数返回数组。你可能知道数组不能被复制,所以这是非常有限的,但让我给你看一些很酷的example.#include#includeusingnamespacestd;autofunc()->int[5]{return{4,56,78,4,0};}intmain(){cout这是编译器错误还是一些新功能?有趣的是,'typeid'返回'FA5_ivE',它被分解为'int(())[5]',这正是您认为的函数返回5个int的数组。编辑:我尝试将返回的数组绑定(bind)到右值引用但没有任何成功(使用了大多数可能的形式):aut

c++ - GCC 允许从函数返回数组 - 错误还是功能?

我惊讶地发现,当使用尾随返回类型而不是普通返回类型时,GCC允许函数返回数组。你可能知道数组不能被复制,所以这是非常有限的,但让我给你看一些很酷的example.#include#includeusingnamespacestd;autofunc()->int[5]{return{4,56,78,4,0};}intmain(){cout这是编译器错误还是一些新功能?有趣的是,'typeid'返回'FA5_ivE',它被分解为'int(())[5]',这正是您认为的函数返回5个int的数组。编辑:我尝试将返回的数组绑定(bind)到右值引用但没有任何成功(使用了大多数可能的形式):aut

c++ - 我怎样才能让 gcc 警告我 "int i = i;"

一个简单的程序:intmain(){longi=i;return0;}编译为C不会出现错误和警告。$gcc-Wall-Wextra-pedantic1.c编译为C++会给出警告:$c++-Wall-Wextra-pedantic1.c1.c:Infunction‘intmain()’:1.c:3:7:warning:‘i’isuseduninitializedinthisfunction[-Wuninitialized]longi=i;在这两种情况下,变量i似乎都是0,尽管在c++中它可能未初始化。实际上,我在我的一个函数中犯了这样的错字,很难找到它。我能做些什么来避免这种情况?我希望

c++ - 我怎样才能让 gcc 警告我 "int i = i;"

一个简单的程序:intmain(){longi=i;return0;}编译为C不会出现错误和警告。$gcc-Wall-Wextra-pedantic1.c编译为C++会给出警告:$c++-Wall-Wextra-pedantic1.c1.c:Infunction‘intmain()’:1.c:3:7:warning:‘i’isuseduninitializedinthisfunction[-Wuninitialized]longi=i;在这两种情况下,变量i似乎都是0,尽管在c++中它可能未初始化。实际上,我在我的一个函数中犯了这样的错字,很难找到它。我能做些什么来避免这种情况?我希望

c++ - GCC:抱歉,未实现:64 位模式未编译

我在我的x8632位linux系统上构建了GCC4.7。当我尝试使用-m64标志进行交叉编译时,我得到以下信息:sorry,unimplemented:64-bitmodenotcompiledin而我的Linux发行版默认提供的编译器可以与-m64交叉编译。我必须将什么传递给./configure才能在GCC中启用64位模式?这些是我用来构建GCC4.7的选项:$/usr/local/bin/g++-vUsingbuilt-inspecs.COLLECT_GCC=/usr/local/bin/g++COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/

c++ - GCC:抱歉,未实现:64 位模式未编译

我在我的x8632位linux系统上构建了GCC4.7。当我尝试使用-m64标志进行交叉编译时,我得到以下信息:sorry,unimplemented:64-bitmodenotcompiledin而我的Linux发行版默认提供的编译器可以与-m64交叉编译。我必须将什么传递给./configure才能在GCC中启用64位模式?这些是我用来构建GCC4.7的选项:$/usr/local/bin/g++-vUsingbuilt-inspecs.COLLECT_GCC=/usr/local/bin/g++COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/