c++11相关内容

在 Xcode [c++] 中的 assert (assert.h) 中定义 lambda 时,为类似函数的宏调用提供了太多参数编译错误

我正在使用 assert.h 中的断言宏我已经定义了 lambda 来执行断言检查. int val1 = 0;诠释 val2 = 1;常量自动检查 = [val1,val2]()->布尔{返回值1 布尔{返回值1 //此调用的编译错误“提供给类似函数的宏调用的参数过多"断言([val1,val2]()->布尔{返回值1 我为什么会得到 提供给类函数宏调用的参数过多 当我使用 ..
发布时间:2022-01-11 19:42:47 C/C++开发

Consexpr 与宏

我应该在哪里使用 macros,我应该在哪里使用 constexpr?不是基本一样吗? #define MAX_HEIGHT 720 对 constexpr unsigned int max_height = 720; 解决方案 他们不是基本一样吗? 没有.绝对不.甚至没有关闭. 除了你的宏是一个 int 而你的 constexpr unsigned 是一个 unsign ..
发布时间:2022-01-11 19:36:25 C/C++开发

在字符串文字内展开宏

我要做的是#define一个宏: #define a(2) 然后在字符串文字中使用它:string = "a";. 我希望该字符串不被解释为字符串,而是获取 a 的值,即 2.我没有成功,有人可以帮忙吗? 解决方案 #define STRINGIFY2(X) #X#define STRINGIFY(X) STRINGIFY2(X)#定义A 2 然后 STRINGIFY(A) 会 ..
发布时间:2022-01-11 19:30:00 C/C++开发

#pragma 曾经是 C++11 标准的一部分吗?

传统上,避免在 C++ 中包含多个标头的标准和可移植方法是使用 #ifndef - #define - #endif预编译器指令方案,也称为 宏守卫方案(见下面的代码片段). #ifndef MY_HEADER_HPP#define MY_HEADER_HPP...#万一 然而,在大多数实现/编译器(见下图)中,有一个更“优雅"的替代方案,其用途与称为 #pragma once.#pragma ..
发布时间:2022-01-11 19:21:10 C/C++开发

如果我不使用变量,我可以在翻译单元中有多个定义吗?

标准似乎暗示如果变量不是odr-used(§3.2/3),则对变量的定义数量没有限制: 每个程序都应包含该程序中 odr 使用的每个非内联函数或变量的准确定义;无需诊断. 它确实说任何变量都不能在翻译单元中多次定义(第 3.2/1 节): 任何翻译单元不得包含任何变量、函数、类类型、枚举类型或模板的多个定义. 但我在整个程序中找不到对非 ODR 使用的变量的限制.那么为什么 ..
发布时间:2022-01-11 15:20:53 C/C++开发

类静态 constexpr 的 C++ 链接器错误

我正在用 g++-4.6.1 --std=c++0x 编译以下简单程序: #include 结构 S{静态 constexpr int X = 10;};主函数(){返回 std::min(S::X, 0);}; 我收到以下链接器错误: /tmp/ccBj7UBt.o:在函数“main"中:scratch.cpp:(.text+0x17): 未定义的对 `S::X' 的引用colle ..
发布时间:2022-01-11 15:05:36 C/C++开发

链接 C++17、C++14 和 C++11 对象是否安全

假设我有三个编译对象,全部由相同的编译器/版本生成: A 是使用 C++11 标准编译的 B 使用 C++14 标准编译 C 是使用 C++17 标准编译的 为简单起见,我们假设所有标头都是用 C++11 编写的,仅使用语义在所有三个标准版本之间都没有改变的结构,因此任何相互依赖都可以通过标头包含正确表达并且编译器没有反对. 这些对象的哪些组合是,链接到单个二进制文件是否安全 ..
发布时间:2022-01-11 14:49:10 C/C++开发

如何用android ndk和eclipse编译c++11代码?

我正在使用 android NDK r8d 和 eclipse Juno.我正在尝试在原生 android 项目中编译使用 C++11 内容的 C++ 代码,例如 mutex、lock_guard、shared_ptr 等在日食中. 我收到如下错误: “错误:‘shared_ptr’不是‘std’的成员" “致命错误:互斥锁:没有这样的文件或目录" 我在这里遇到了类似的问题 ..
发布时间:2022-01-10 23:59:37 C/C++开发

Android NDK 的最新 C++11 功能

我正在尝试将 C++11 线程工具与 Android NDK 一起使用,但不确定如何使其使用最新的编译器. 我有 Clang 3.2 并且可以构建 iOS 应用程序.我想知道是否有办法用 Android NDK 做到这一点? 如果不是,那我应该如何使用 gcc 4.8 构建? 解决方案 NDK 修订版 10 具有 Clang 3.6 工具链.使用它: NDK_TOOLCHAI ..
发布时间:2022-01-10 23:21:16 移动开发

如何在 Android 中使用 std::stoul 和 std::stoull?

C++11 新增了两个字符串转换函数为 unsigned long 和 long long:std::stoul() 和 std::stoll(). 最近的 Android NDK r9 引入了 Clang 3.3 编译器,据说是 C++11 功能完整.NDK 内部有这些函数的原型,但是我不能使用它们. 我需要做什么才能使用它们? P.S.我已经做了 LOCAL_CPPFLAGS ..
发布时间:2022-01-10 23:16:04 移动开发

使用 pugiXML 根据 std::map 重命名节点

我是 C++ 新手,但我正在尝试定义一组标准的节点名称,然后映射到它们. 例如我的标准导入/输出模式是这样的: 1测试 但是有时我的 XML 导入会被命名不同,所以我想创建一个映射,以便它仍然以上述格式输出,即使输入文件具有此命名约定: 1测试 ..
发布时间:2022-01-10 20:37:42 C/C++开发

使用 CUDA 和 C++11 时出错

我正在使用 CUDA 4.1 和 GCC 4.5 ...(终于!CUDA 支持 GCC 4.5,但仍在等待 GCC 4.6).无论如何,是否可以在 CUDA 4.1 中使用 C++11? 我尝试过: --compiler-options "-std=c++0x" 到 nvcc,它会向我抛出一堆错误: /usr/include/c++/4.5/exception_ptr.h(100):错 ..
发布时间:2022-01-10 16:18:38 C/C++开发

cuda 5.0支持的c++版本

我找不到 CUDA 5.0 支持哪个版本/哪个 c++ 概念.我在 CUDA 5.0 RC 随附的编程指南或参考指南中找不到任何信息.特别是我想知道 CUDA 5.0 是否支持 C++11.有人能指点我一个地方来查找这些信息吗? 解决方案 不支持 gcc 4.7 所以 一些 c++11 功能不可用: - 非静态数据成员初始化器- 模板别名:(- 委托构造函数- 用户定义的文字- 扩展朋友 ..
发布时间:2022-01-10 15:54:03 C/C++开发