c++11相关内容
我正在使用 assert.h 中的断言宏我已经定义了 lambda 来执行断言检查. int val1 = 0;诠释 val2 = 1;常量自动检查 = [val1,val2]()->布尔{返回值1 布尔{返回值1 //此调用的编译错误“提供给类似函数的宏调用的参数过多"断言([val1,val2]()->布尔{返回值1 我为什么会得到 提供给类函数宏调用的参数过多 当我使用
..
我想使用 PyBind11 来包装一个专门的数组类.但是,该数组有多种形式(每种普通旧数据类型一种).代码如下所示: py::class_>(m, "Array2Dfloat", py::buffer_protocol(), py::dynamic_attr()).def(py::init()).def(py::init::xy_t,Array2D
..
我应该在哪里使用 macros,我应该在哪里使用 constexpr?不是基本一样吗? #define MAX_HEIGHT 720 对 constexpr unsigned int max_height = 720; 解决方案 他们不是基本一样吗? 没有.绝对不.甚至没有关闭. 除了你的宏是一个 int 而你的 constexpr unsigned 是一个 unsign
..
我要做的是#define一个宏: #define a(2) 然后在字符串文字中使用它:string = "a";. 我希望该字符串不被解释为字符串,而是获取 a 的值,即 2.我没有成功,有人可以帮忙吗? 解决方案 #define STRINGIFY2(X) #X#define STRINGIFY(X) STRINGIFY2(X)#定义A 2 然后 STRINGIFY(A) 会
..
传统上,避免在 C++ 中包含多个标头的标准和可移植方法是使用 #ifndef - #define - #endif预编译器指令方案,也称为 宏守卫方案(见下面的代码片段). #ifndef MY_HEADER_HPP#define MY_HEADER_HPP...#万一 然而,在大多数实现/编译器(见下图)中,有一个更“优雅"的替代方案,其用途与称为 #pragma once.#pragma
..
我正在尝试链接我的程序可执行文件,但我不断收到错误. 拥有 boost::this_thread::sleep(boost::posix_time::milliseconds(10)); 在我的源代码中,在链接器中产生以下错误: `.text._ZN5boost16exception_detail19error_info_injectorISt13runtime_errorED2Ev'
..
标准似乎暗示如果变量不是odr-used(§3.2/3),则对变量的定义数量没有限制: 每个程序都应包含该程序中 odr 使用的每个非内联函数或变量的准确定义;无需诊断. 它确实说任何变量都不能在翻译单元中多次定义(第 3.2/1 节): 任何翻译单元不得包含任何变量、函数、类类型、枚举类型或模板的多个定义. 但我在整个程序中找不到对非 ODR 使用的变量的限制.那么为什么
..
我正在用 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
..
假设我有三个编译对象,全部由相同的编译器/版本生成: A 是使用 C++11 标准编译的 B 使用 C++14 标准编译 C 是使用 C++17 标准编译的 为简单起见,我们假设所有标头都是用 C++11 编写的,仅使用语义在所有三个标准版本之间都没有改变的结构,因此任何相互依赖都可以通过标头包含正确表达并且编译器没有反对. 这些对象的哪些组合是,链接到单个二进制文件是否安全
..
我正在尝试为支持 c++11 的 android 构建 boost_1.60.0(作为共享库).我正在使用最新的 ndk(目前是 android-ndk-r10e).构建主机是 Windows-10. 这是针对非开源项目的.据我了解,我不能使用 gnustl_shared,我需要使用 c++_shared 作为 android c++ 运行时. 我的 project-config.ja
..
我正在使用 android NDK r8d 和 eclipse Juno.我正在尝试在原生 android 项目中编译使用 C++11 内容的 C++ 代码,例如 mutex、lock_guard、shared_ptr 等在日食中. 我收到如下错误: “错误:‘shared_ptr’不是‘std’的成员" “致命错误:互斥锁:没有这样的文件或目录" 我在这里遇到了类似的问题
..
我一直在尝试使用 C++11.我正在开发一个 android 项目,我想使用 std::mutex.与 OpenCV 一起但无论我做什么,我似乎都无法修复 Type 'mutex' could not be resolved错误. 我尝试按照我在 SO 和其他地方找到的教程进行操作.LINK1 LINK2 LINK3LINK4 ADT v22.3.0-887826 已安装的 C/C+
..
我不知道如何在我的 Android 项目中使用共享指针.我在带有 Android NDK r8d 的 Mac OS X 上使用最新的 Eclipse ADT. 这是我的 Android.mk 文件中的内容: LOCAL_PATH := $(call my-dir)包括 $(CLEAR_VARS)LOCAL_CPPFLAGS := -std=c++11LOCAL_MODULE := 本机
..
我正在尝试将 C++11 线程工具与 Android NDK 一起使用,但不确定如何使其使用最新的编译器. 我有 Clang 3.2 并且可以构建 iOS 应用程序.我想知道是否有办法用 Android NDK 做到这一点? 如果不是,那我应该如何使用 gcc 4.8 构建? 解决方案 NDK 修订版 10 具有 Clang 3.6 工具链.使用它: NDK_TOOLCHAI
..
C++11 新增了两个字符串转换函数为 unsigned long 和 long long:std::stoul() 和 std::stoll(). 最近的 Android NDK r9 引入了 Clang 3.3 编译器,据说是 C++11 功能完整.NDK 内部有这些函数的原型,但是我不能使用它们. 我需要做什么才能使用它们? P.S.我已经做了 LOCAL_CPPFLAGS
..
我是 C++ 新手,但我正在尝试定义一组标准的节点名称,然后映射到它们. 例如我的标准导入/输出模式是这样的: 1测试 但是有时我的 XML 导入会被命名不同,所以我想创建一个映射,以便它仍然以上述格式输出,即使输入文件具有此命名约定: 1测试
..
如何从 boost::property_tree 获取枚举? 这是我的“非工作"示例. config.xml 排放::EMIT142 main.cpp #include #include #includ
..
我正在使用 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):错
..
..
我找不到 CUDA 5.0 支持哪个版本/哪个 c++ 概念.我在 CUDA 5.0 RC 随附的编程指南或参考指南中找不到任何信息.特别是我想知道 CUDA 5.0 是否支持 C++11.有人能指点我一个地方来查找这些信息吗? 解决方案 不支持 gcc 4.7 所以 一些 c++11 功能不可用: - 非静态数据成员初始化器- 模板别名:(- 委托构造函数- 用户定义的文字- 扩展朋友
..