c++11 相关问题

将此标记用于必须编译为C ++ 11的代码(不使用C ++ 14或更高版本中引入的任何功能)。

C++11 原子是否自动解决变量读写上的多核竞争?

我知道当多个线程读写变量时,atomic会在类型“T”变量上应用锁,确保只有其中一个线程正在执行读/写操作。 但在很多...

回答 2 投票 0

C++。使用自定义 lambda 将二进制数组累加为整数

如何将包含0和1的二进制数组累加为整数? 向量 arr = {1,0,1,0,1,1,1,0,1,0,0}; int num = 累积(arr.begin(), arr.end(), [] (int &a, int &b) ...

回答 2 投票 0

了解多线程的 Boost.Asio Strand 行为

Win12、boost::asio 1.82.0、MSVC 2022(我使用了不同的编译器,c++ 14 和 c++ 20) 我尝试一步步理解iocontext。 现在我想使用很多线程(但我不想使用线程池...

回答 1 投票 0

不使用数组查找5个数字中最大和最小的程序

昨天我去面试,他们要求我创建一个程序,在不使用数组的情况下找到 5 个数字中的最大和最小。 我知道如何使用数组创建程序。 整数

回答 17 投票 0

将列表传递给函数以充当 C++ 中的多个参数

在Python中,我们可以解压列表,将列表的元素作为参数传递给函数。我正在寻找 C++ 中的类似功能。 我有一个未知大小的列表和一个有数字的函数...

回答 1 投票 0

分段错误(核心转储)C++ 初学者

所以,我是 C++ 新手。我研究了分段错误(核心转储)、内存分配和新建/删除,尽管我很难理解这些概念。我确实相信我的问题出在我...

回答 1 投票 0

为什么从字符串文字到 'char*' 的转换在 C 中有效,但在 C++ 中无效

C++11 标准 (ISO/IEC 14882:2011) 在 § C.1.1 中表示: 字符* p = "abc"; // 在C中有效,在C++中无效 对于 C++ 来说这是可以的,因为指向字符串文字的指针是有害的,因为任何修改的尝试...

回答 4 投票 0

C++实现银行家四舍五入

所以本质上我正在写一本 C++ 书,练习之一是修改书中的示例以使用银行家舍入。就上下文而言,银行家的四舍五入是以小数美分为单位的四舍五入......

回答 3 投票 0

在函数c++中插入向量后对象会发生什么

当您在代码块内声明变量时,该变量的生命周期将持续到代码块结束为止。当变量的生命周期结束时,变量将被销毁,这是......

回答 1 投票 0

PyBind11 多种类型的模板类

我想使用 PyBind11 来包装一个专门的数组类。然而,该数组有多种形式(每种普通旧数据类型都有一个)。代码如下所示: py::class_ 我想使用 PyBind11 来包装一个专门的数组类。然而,该数组有多种形式(每种普通旧数据类型都有一个)。代码如下所示: py::class_<Array2D<float>>(m, "Array2Dfloat", py::buffer_protocol(), py::dynamic_attr()) .def(py::init<>()) .def(py::init<Array2D<float>::xy_t,Array2D<float>::xy_t,float>()) .def("size", &Array2D<float>::size) .def("width", &Array2D<float>::width) .def("height", &Array2D<float>::height) //... //... 我想到的告诉 PyBind11 这些类的唯一方法是通过使用一个非常大的宏为每个 POD 复制上述内容。 有更好的方法吗? 您可以避免使用宏,而是使用模板化声明函数: template<typename T> void declare_array(py::module &m, const std::string &typestr) { using Class = Array2D<T>; std::string pyclass_name = std::string("Array2D") + typestr; py::class_<Class>(m, pyclass_name.c_str(), py::buffer_protocol(), py::dynamic_attr()) .def(py::init<>()) .def(py::init<Class::xy_t, Class::xy_t, T>()) .def("size", &Class::size) .def("width", &Class::width) .def("height", &Class::height); } 然后多次调用: declare_array<float>(m, "float"); declare_array<int>(m, "int"); ...

回答 1 投票 0

C++ STL 的 __is_const(_Tp) 是如何工作的?

在研究一些类型特征时,我正在搜索 std::is_const() 是如何工作的。根据STL中的定义是 模板 结构

回答 1 投票 0

如何获取成员函数指针的类?

考虑代码: 班级人物 { 无效杀死(); 无效 send_to_wall(); } 模板 无效 GeorgeFunc(T fp) { ???对象; (obj.*fp)(); } int main() { GeorgeFunc(&Charac...

回答 2 投票 0

concat std::vector 和初始化列表

在 c++11 中你可以实现这个美妙的语法: 向量数字 = {1, 2, 3}; 有没有办法将进一步的初始化列表连接到现有向量上? 数字。??? ({4,5,6}); 或者 ...

回答 3 投票 0

如何“清除”std::promise?

我有一个程序,它应该循环启动8个线程,它将使用std::promise返回一个值。所以我想我需要创建一个由 8 个 Promise 对象组成的向量,获取它们的 future,并使用这些

回答 3 投票 0

静态初始化时抛出异常

cppreference.com 上的 Terminate() 文章指出,如果静态或 thead-local 对象在构造期间抛出异常,则将调用 Terminate()。我想用 s...

回答 1 投票 0

如何在类模板中传递函数而不使用auto?

我有以下功能: bool comp(Arm l, Arm r) { 返回 l.len < r.len; } Please, Assume Arm is appropriately declared struct. I have following class: template 我有以下功能: bool comp(Arm l, Arm r) { return l.len < r.len; } 请假设 Arm 是适当声明的结构。 我有以下课程: template<typename T, typename F> class Myclass { public: Arm v[10]; bool Myfunc(int i) { int l = i, r = i + 1; return F(v[l], v[s]); } }; 创建对象时: Myclass<Arm, decltype(comp)> obj; 我得到了error: expression list treated as compound expression in functional cast [-fpermissive] 我尝试过传递地址,我尝试过创建函数指针并传递它。我希望它适用于 C++ 11,使用 C++17 我得到它的工作使用: template<typename T, auto F> class Myclass { ... 并通过以下方式创建对象: Myclass<Arm, comp> obj; 这工作得很好。 您需要一个 F 的实例才能调用它: template<typename T, typename F> class Myclass { public: Arm v[10]; bool Myfunc(int i) { int l = i, r = i + 1; return F{}(v[l], v[s]); // ^^ } };

回答 1 投票 0

为什么c++语法是&address=variable而不是&address=&variable?

我最近开始学习c++中的指针和引用,并且很难理解为什么引用的语法是&address =variable而不是&address=&va...

回答 2 投票 0

C++11:在类中查找方法和错误:嵌套名称说明符中使用的类型不完整

使用 C++11 中的 CRTP 习惯用法,我试图检查派生类是否具有名为 size 的方法。 #包括 模板 结构 IsContainer { 模板<

回答 1 投票 0

具有 const 成员的对象上的复制赋值运算符

这个问题多年来一直困扰着我。 给定一个类: 类 Foo { 常量整型值; 民众: Foo& 运算符=(const Foo& copy_from) }; 我应该如何为 cl 实现复制分配...

回答 1 投票 0

std::find 当 std::vector 为空但给定初始大小时的行为

根据这篇文章,当容器为空时,std::find 返回结束迭代器。但是,当我使用 gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) 运行此代码时 #包括 ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.