草庐IT

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++0x const RValue 引用作为函数参数

我试图理解为什么有人会编写一个采用constrvalue引用的函数。在下面的代码示例中,constrvalue引用函数的用途是什么(返回“3”)。以及为什么重载解析优先于constLValue引用函数(返回“2”)之上的constRvalue。#include#include#includestd::vectorcreateVector(){returnstd::vector();}//takesmovablervaluevoidfunc(std::vector&&p){std::cout&p){std::cout&&p){std::cout 最佳答案

C++0x const RValue 引用作为函数参数

我试图理解为什么有人会编写一个采用constrvalue引用的函数。在下面的代码示例中,constrvalue引用函数的用途是什么(返回“3”)。以及为什么重载解析优先于constLValue引用函数(返回“2”)之上的constRvalue。#include#include#includestd::vectorcreateVector(){returnstd::vector();}//takesmovablervaluevoidfunc(std::vector&&p){std::cout&p){std::cout&&p){std::cout 最佳答案

c++ - C++0x 中 C++ 枚举的基础类型

我一直在尝试阅读一些C++标准,以了解枚举的工作原理。实际上比我最初想象的要多。对于作用域枚举,很明显底层类型是int除非用enum-base子句另行指定(它可以是任何整数类型)。enumclasscolor{red,green,blue};//theseareint对于无作用域的枚举,似乎基础类型可以是任何可以工作的整数类型,并且它不会大于int,除非它需要。enumcolor{red,green,blue};//underlyingtypemayvary由于无范围枚举的底层类型没有标准化,那么处理序列化枚举实例的最佳方法是什么?到目前为止,我一直在写入时转换为int然后序列化为in

c++ - C++0x 中 C++ 枚举的基础类型

我一直在尝试阅读一些C++标准,以了解枚举的工作原理。实际上比我最初想象的要多。对于作用域枚举,很明显底层类型是int除非用enum-base子句另行指定(它可以是任何整数类型)。enumclasscolor{red,green,blue};//theseareint对于无作用域的枚举,似乎基础类型可以是任何可以工作的整数类型,并且它不会大于int,除非它需要。enumcolor{red,green,blue};//underlyingtypemayvary由于无范围枚举的底层类型没有标准化,那么处理序列化枚举实例的最佳方法是什么?到目前为止,我一直在写入时转换为int然后序列化为in

c++ - 为什么动态检查 C++0x 的 `noexcept`?

我很好奇C++0xFCD中noexcept背后的基本原理.throw(X)已被弃用,但noexcept似乎做同样的事情。编译时没有检查noexcept是否有原因?如果这些函数被静态检查,它们只在tryblock中调用抛出函数,似乎会更好。 最佳答案 基本上,这是一个链接器问题,标准委员会不愿破坏ABI。(如果由我决定,我会这样做,它真正需要的只是重新编译库,我们已经有了线程启用的这种情况,而且它是可管理的。)考虑它会如何运作。假设要求是每个析构函数都是隐式的noexcept(true)可以说,这应该是一个严格的要求。抛出析构函数总是

c++ - 为什么动态检查 C++0x 的 `noexcept`?

我很好奇C++0xFCD中noexcept背后的基本原理.throw(X)已被弃用,但noexcept似乎做同样的事情。编译时没有检查noexcept是否有原因?如果这些函数被静态检查,它们只在tryblock中调用抛出函数,似乎会更好。 最佳答案 基本上,这是一个链接器问题,标准委员会不愿破坏ABI。(如果由我决定,我会这样做,它真正需要的只是重新编译库,我们已经有了线程启用的这种情况,而且它是可管理的。)考虑它会如何运作。假设要求是每个析构函数都是隐式的noexcept(true)可以说,这应该是一个严格的要求。抛出析构函数总是

C++0x - 导出已消失,异常规范已弃用。这会影响你的代码吗?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前。这个最新的HerbSuttertripreport在C++0x标准化过程中表明委员会已决定完全放弃模板的“导出”概念,并弃用异常规范。我认为这些都是不错的举措,但我很想知道是否有人有一个代码库,这些更改会导致他们彻夜难眠? 最佳答案 我从cfront1.0开始就一直在使用C++编程,我很高兴地说我

C++0x - 导出已消失,异常规范已弃用。这会影响你的代码吗?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前。这个最新的HerbSuttertripreport在C++0x标准化过程中表明委员会已决定完全放弃模板的“导出”概念,并弃用异常规范。我认为这些都是不错的举措,但我很想知道是否有人有一个代码库,这些更改会导致他们彻夜难眠? 最佳答案 我从cfront1.0开始就一直在使用C++编程,我很高兴地说我