c++11相关内容

std::vector 的类型要求

我仍然对在 C++11 中与 std::vector 一起使用的类型的要求感到困惑,但这可能是由错误的编译器 (gcc 4.7.0) 引起的.这段代码: struct A {A() : X(0) { std::cerr ..
发布时间:2021-11-27 08:13:32 C/C++开发

我在哪里可以在 C++11 中使用 alignas()?

为了标准化我的代码并使其更具可移植性,我替换了 #ifdef __GNUC__typedef __attribute__((aligned(16))) 浮动aligned_block[4];#别的typedef __declspec(align(16)) 浮动对齐块[4];#万一 与 typedef float alignas(16)aligned_block[4]; 在 C++11 中. ..
发布时间:2021-11-27 08:05:30 C/C++开发

使用 lambdas 对 std::function 赋值的访问冲突

大家好,又来了.继续我上一个问题中的代码:这是一个糟糕的黑客吗?带有虚拟类的 memcpy我按照建议使用克隆方法纠正了这一点,但在尝试 memcpy 之前也发生了一个错误(阅读上面的问题). 我想要做的是创建一个 lambda 来捕获当前脚本并执行它,然后将该 lambda 传递并存储在一个对象 (Trigger*) 中,在成员 InternalCallback 中. 我在 lambda ..
发布时间:2021-11-26 20:21:56 C/C++开发

可以通过转换为布局兼容类型来访问私有成员函数吗?

从这个问题的讨论 在 C++ 中如何访问私有变量在幕后实现?我提出了一个变体: 除了访问私有数据成员之外,是否可以通过强制转换和依赖布局兼容性来调用私有成员函数? 一些代码(灵感来自 Herb Sutter 的专栏 访问权限的使用和滥用) #include X级{民众:X() : private_(1) {/*...*/}私人的:int Value() { return private_; ..
发布时间:2021-11-26 18:44:08 C/C++开发

在 C++11 中声明接口的最佳方式

众所周知,有些语言有接口的概念.这是Java: public interface Testable {无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏一个不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) class Testable {民众:虚拟无效测试()= 0;受保护:可测试();Tes ..
发布时间:2021-11-26 16:18:24 C/C++开发

如何在 C++ 中为孙子级覆盖超类的虚函数?

大家好,这里有一些我将要运行的代码,问题是它没有按照我想要的方式工作.我无法弄清楚它有什么问题.我是 C++ 菜鸟,请帮忙. #include #include #include 使用命名空间标准;/*** 超级班*/班级形状{受保护:int _dimensions;民众:形状() : _dimensions{0}{};形状(int 暗淡):_dimensions{暗淡}{};虚拟 ..
发布时间:2021-11-25 09:55:31 C#

在 C++11 中声明接口的最佳方式

众所周知,有些语言有接口的概念.这是Java: public interface Testable {无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏一个不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) class Testable {民众:虚拟无效测试()= 0;受保护:可测试();Tes ..
发布时间:2021-11-25 08:50:53 C#

Android Studio 14 原生开发 + CrystaX NDK

我正在尝试将一个巨大的跨平台 C++11 (iOS+Android) 应用程序项目迁移到 Android Studio 14.我正在使用 CrystaX NDK for boost 和 C++14.在他们网站的博客这里上有一个官方的 Android Studio + CrystaX 教程,但它已经过时了. 我已经下载了官方的 hello-jni 示例,该示例旨在与 Android Studi ..
发布时间:2021-11-21 20:55:48 Android

如何为 Android Studio 启用 C++11?

我正在使用 Android studio 1.3.2+ndk-r11b-windows-x86_64 并尝试使用本机代码和 C++11 功能(share_ptr、weak_ptr 等)构建项目,但遇到了一些错误.例如: 错误:(22, 6) 错误:命名空间“std"中的“shared_ptr"未命名模板类型 问题是:如何在Android Studio+NDK中使用C++11? 附 ..
发布时间:2021-11-21 18:55:55 Android

如何初始化 std::array带有省略尾随 '\0' 的字符串文字

我有一个文件结构,其中固定长度的字符串没有尾随零.如何将字段初始化为 std::array 而没有尾随零: #pragma pack(push, 1)结构数据{//编译,但它有一个不需要的 '\0':std::arrayundesired_number{"12345"};//不编译:std::array号码{“12345"};//剥离 '\0'};#pragma 包(流行) 解决方案 制作辅 ..
发布时间:2021-11-18 05:13:13 其他开发

如何用索引序列构造一个 std::array ?

如何使用索引序列或依赖于顺序索引的 lambda 构建 std::array? std::iota 和 std::generate 似乎相关,但我不确定如何使用它们来构建 std::array,而不是将它们应用到一个已经构造好的(如果数组的元素类型不是默认构造的,这是不可能的). 示例我想要 DRY 的代码类型: #include C级{民众:C(int x, float f) : ..
发布时间:2021-11-18 05:01:08 其他开发

在 C++11 中复制常量大小数组的最简洁方法

我经常发现自己想要复制具有恒定大小的数组的内容,我通常只是按照以下方式编写: float a[4] = {0,1,2,3};浮动 b[4];for(int i=0; i 最近,我正在编写一个用于教育目的的线性微积分库,我想知道是否有更好的方法来做到这一点. 我首先想到的是使用 memcpy: memcpy(b, a, sizeof(float) * 4); 但这对我来说似乎很像 c ..
发布时间:2021-11-18 04:56:27 其他开发

错误:无法为数组指定显式初始值设定项

我正在使用 Visual Studios 2013 并且不断收到此错误,但我不明白为什么. class CLI{字符串命令[2] = {“创建",“登录"};民众:void addCommand(), start(), getCommand(string);}; 错误: error C2536: 'CLI::CLI::commands': 无法为数组指定显式初始值设定项 解决方案 Vis ..
发布时间:2021-11-18 04:28:20 其他开发

可以在 constexpr 类中使用 std::array 吗?

我目前正在创建一个带有 constexpr 构造函数的类,我想知道是否可以使用 std::array 来存储这个类的数据.标准是否明确指定 std::array 有一个 constexpr 构造函数,并且它的内容可以在编译时访问? 解决方案 因为 std::array 是一个聚合,所以可以初始化为一个 constexpr 当且仅当基础类型 T 具有 constexpr 构造函数(当与您提供 ..
发布时间:2021-11-18 04:20:29 其他开发

为什么字符串文字上的 decltype 不会产生数组类型?

标准在 §2.13.5/8 中定义了字符串文字的类型,如下所示: 普通字符串文字和 UTF-8 字符串文字也称为窄字符串文字.窄字符串文字的类型为“n const char 数组",其中 n 是如下定义的字符串大小,并且具有静态存储持续时间 (3.7). 因此,例如,"sss" 应该有一个 char const[4] 类型(除非我读错了). 但是这个简单的片段: std::co ..
发布时间:2021-11-18 04:16:53 其他开发

如何使用已删除的复制构造函数初始化类数组 (C++11)

关于为什么我不能初始化具有私有复制构造函数的对象数组的现有问题? 特指到 C++03.我从那个问题知道我想要做的在 C++03 中是不允许的,但我认为在 C++11 中应该是可能的 我有一个不可移动的类(称之为 Child),我需要在另一个类的构造函数中初始化一个 Child 数组(称之为 Parent).“不可移动"是指子对象的地址在该对象的生命周期内必须保持不变.这样做的正确方法是什么? ..
发布时间:2021-11-18 04:16:29 其他开发

将 C 数组分配给 C++ 的 std::array?(std::array = T[U]) - “T [U]"中不存在合适的构造函数;到“std::array"

我正在尝试将 C 数组分配给 C++ std::array. 我该如何做到这一点,以最干净的方式并且不制作不需要的副本等? 什么时候做 int X[8];std::arrayY = X; 我收到编译器错误:“不存在合适的构造函数". 解决方案 没有从普通数组到 std::array 的转换,但是您可以将元素从一个复制到另一个: std::copy(std::begin(X ..
发布时间:2021-11-18 04:10:18 其他开发

循环遍历 C++ 数组的正确方法

最近我发现了很多例子,其中大部分是关于 C++ 98 的,反正我已经创建了我的简单数组和循环(键盘): #include 使用命名空间标准;int主(){string texts[] = {"Apple", "Banana", "Orange"};for( unsigned int a = 0; a ..
发布时间:2021-11-18 03:55:27 其他开发

这个 std::array 的内联初始化有什么问题?

考虑以下声明: #include 结构体{//std::arrayarr={false,false,false};bool brr[3]={false,false,false};}; 按原样,它可以通过 g++ 5.2 正常编译.但是如果我取消对 std::array 的注释,我会收到一个错误: test.cpp:5:46: 错误:数组必须用大括号括起来的初始化器初始化std::arraya ..
发布时间:2021-11-18 03:48:54 其他开发

在 Cython 中包装 std::array 并将其暴露给内存视图

目前 Cython 的 repo 中似乎有一个 pull request 来包装 c++ std::array 但在那之前,我可以使用一些帮助.我目前正在像这样包装 std::array : cdef extern from ""命名空间“std"nogil:cdef cppclass array2 "std::array":array2() 除了+双&运算符[](size_t) 这行得通,但 ..
发布时间:2021-11-18 03:46:41 其他开发