c++11 相关问题

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

在C++11中用“auto”推导时,lambda的类型是什么?

我有一种看法,lambda 的类型是函数指针。当我执行以下测试时,我发现它是错误的(demo)。 #define LAMBDA [] (int i) -> long { return 0; } int 主函数 () { ...

回答 9 投票 0

定义类时常用的成员变量存放在哪里?

我定义了一个简单的类: A级 { 民众: 整数a; }; sizeof(A)是4,所以我很困惑,当我刚刚定义这样一个类时,公共成员变量a存储在哪里?栈还是堆?

回答 2 投票 0

在每次迭代的 for 循环中计算向量大小是否昂贵? [重复]

C++ 编译器是否处理诸如建筑物是向量之类的情况: 对于 (int i = 0; i < buildings.size(); i++) {} that is, does it notice if buildings is modified in the loop or not, and then ...

回答 6 投票 0

编译时递归函数来计算整数的下一个2的幂?

在 Bit Twiddling Hacks 网站上,提供了以下算法来将整数四舍五入到 2 的下一个幂: 无符号整型 v; // 计算 32 位 v 的下一个最高的 2 次方 v--; v |=...

回答 4 投票 0

C++ 调用 RPC 函数时返回语句出现分段错误

当我在客户端调用 rpc 函数并发送一个整数作为参数时,服务器上的函数应该将整数转换为符号地址。当用callrpc调用RPC函数时,...

回答 1 投票 0

是否可以从zoned_time获取time_point?

我尝试在 std::string 中有选择地获取当地时间/UTC。 我尝试过的: (1) 获取 UTC 的 std::string 使用 std::format 可以正常工作: 自动 utc = std::chrono::system_clock::now(); std::字符串...

回答 1 投票 0

如何获取没有对象的成员函数的返回类型?

我有许多无法修改的类。每个构造函数都有一个复制构造函数、至少一个其他构造函数以及一个返回某个值的函数 foo()。我想制作一个可以的类模板

回答 4 投票 0

CPP std::thread 尝试使用已删除的函数

首先,我想说我已经对这个主题进行了研究,但没有任何相关...... (使用 clang 在 Mac OS X 上创建 std::thread 时出错:“尝试使用已删除的函数”...

回答 3 投票 0

如何将 Boost.MultiArray 的 2D 视图作为函数的参数?

我有一个 3D 双精度数组。我想编写简单且通用的函数来打印它的 2D 切片。 代码: #包括 #包括 模板...

回答 2 投票 0

输入特征来检查给定类型是否存在 istream 运算符>>

我发现了这个类型特征,可以用来检查某个类型T是否支持运算符<<: template 结构 has_ostream_operator_impl { 模板 静态

回答 1 投票 0

C++ 规范:重复的方法可以共享相同的指针/地址吗?

只是询问 C++ 规范/标准, 这与Qt无关,只是欣赏一些Qt知识; C++ 规范/标准是否允许两个方法具有相同的指针,我的意思是,如果 com...

回答 1 投票 0

将 void* 转换为 std::function

我有一个问题。我正在尝试将 void* 转换为 std::function 。 这只是一个简单的例子,任何建议将不胜感激 #.h 文件 类示例{ 民众: 例子(); int foo(void* ...

回答 2 投票 0

EMC++ 中提到的“源对象是左值”场景是什么,其中移动语义没有提供任何效率增益

Effective Modern C++ 中的第 29 条,Scott Meyers 列出了移动语义不能提高代码性能的三种场景, [...]移动语义对你没有好处: 无移动操作:要成为的对象

回答 3 投票 0

C++ 第 1 阶段源文件字符翻译集:C++11 之前与 C++11 之后、C++23 之前

cppreference 关于翻译阶段的页面,对于翻译的阶段 1(C++23 之前),在其步骤 2 中有一条注释: 接受的源文件字符集是实现定义的(si...

回答 1 投票 0

为什么在 VisualStudio 2013 中,operator+ 对于 lambda 来说是不明确的?

谁能帮我指出为什么这在 VS2013 中不起作用? 自动 p = +[]() -> void { std::cout << "Hello, world!\n"; }; p(); source_file.cpp(7) : error C2593: 'operator +'...

回答 2 投票 0

inline对函数联动有什么影响?

我正在阅读 ODR,正如规则所说“在整个程序中,一个对象或非内联函数不能有多个定义”,我尝试了以下操作... 文件1.cpp #包括 我正在阅读 ODR,正如规则所说 "In the entire program, an object or non-inline function cannot have more than one definition",我尝试了以下操作... 文件1.cpp #include <iostream> using namespace std; inline int func1(void){ return 5; } inline int func2(void){ return 6; } inline int func3(void){ return 7; } int sum(void); int main(int argc, char *argv[]) { cout << func1() << endl; cout << func2() << endl; cout << func3() << endl; cout << sum() << endl; return 0; } 文件2.cpp inline int func1(void) { return 5; } inline int func2(void) { return 6; } inline int func3(void) { return 7; } int sum(void) { return func1() + func2() + func3(); } 它按照规则所说起作用了。我可以有多个内联函数的定义。 非内联函数链接和内联函数链接有什么区别? 链接器如何区分这两者? 创建一个函数inline有两件事(第二点与你的问题更相关): 这是程序员向编译器提出的建议,可以通过进行内联扩展来快速调用该函数。粗略地说,内联扩展类似于将内联函数视为宏,通过其主体的代码扩展对它的每次调用。这是一个建议 - 编译器可能不会(有时不能)执行类似的各种优化。 它将函数的范围指定为翻译单元的范围。因此,如果 inline 函数出现在 foo.cpp 中(要么因为它被写入其中,要么因为它 #include 是写入它的标头,在这种情况下,预处理器基本上会这样做)。现在您编译 foo.cpp,可能还编译其他一些 bar.cpp,其中也包含具有相同签名的 inline 函数(可能完全相同;可能是由于两者 #include 具有相同的标头)。当链接器链接两个目标文件时,不会被视为违反 ODR,因为 inline 指令使文件的每个副本都位于其翻译单元的本地(实际上是通过编译而创建的目标文件)。这不是建议,而是约束。 这两件事同时发生并不是巧合。最常见的情况是 inline 函数出现在由多个源文件组成的头 #include 中,可能是因为程序员想要请求快速内联扩展。不过,这需要翻译单元局部性规则,这样就不会出现链接器错误。

回答 1 投票 0

C++ constexpr 引用不是 const [重复]

我有以下简单代码: constexpr int x = 1; constexpr int &y = x; - 错误。将类型“int &”的绑定引用中的限定符删除到类型“const int&q...

回答 1 投票 0

如何 std::move boost::multi_array?

multi_array 似乎没有移动构造函数 - 这是正确的吗?这是否有原因,或者它只是从未实现,因为该类似乎是在移动语义之前编写的......

回答 1 投票 0

从初始值设定项列表填充 boost::multi_array 的最佳方法是什么?

我想在某些代码中内联初始化 boost::multi_array 。但我不认为 boost::multi_array 支持从初始化列表进行初始化。这是我到目前为止所拥有的: // 首先创建...

回答 2 投票 0

C++ 模板特化除一种之外的所有类型

我需要一个为除一种类型之外的所有类型调用的方法(C++ 11)。 模板 void方法(T&值) { ... } 模板<> void 方法(std::string& value) { ... } 是吗

回答 3 投票 0

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