c++11相关内容

通过引用传递比较器函数(C++11)

我正试图加速我的代码(下面是一个最小的、可重现的例子),我被告知,对于我的比较器函数来说,通过引用传递将是一种更有效的方法。这是我第一次听说这个短语,所以我查了一下,找到了一些有例子的网站,但我不知道什么时候和如何使用它。在这种情况下我将如何使用它? #include #include #include #include ..
发布时间:2022-04-09 23:38:52 C/C++开发

IS(Int)(无符号)-1==未定义的行为

我在试着理解这句话的意思: (int)(unsigned)-1 == -1; 根据我目前的理解,会发生以下情况: -1是签名int,并强制转换为无签名int。这样做的结果是,由于回绕行为,我们获得了可以由unsigned类型表示的最大值。 接下来,我们在步骤1中获得的unsigned类型的最大值现在强制转换为signed int。但请注意,此最大值是unsigned type ..
发布时间:2022-03-22 10:54:51 C/C++开发

尝试运行带有浮点参数的重载函数时出错。

我试图用c++创建一个简单的(绝对)函数,我已经创建了两个同名函数,一个接受整数并返回整数,另一个接受浮点数并返回浮点数,但每次尝试运行代码时都收到此错误: “错误:调用重载的‘Absolute(Double)’不明确” 我尝试更改第二个函数的输入参数,以便它接受双精度值并返回浮点型,并且代码运行良好。我想知道当参数和返回类型都设置为浮点型时代码无法运行的原因,谢谢。 #incl ..
发布时间:2022-03-10 12:13:22 C/C++开发

存储IPv4或IPv6地址最有效的协议类型(在C++中)是什么?我的地址是Boost::ASIO::IP::Address_v4(或v6)

我看到Protobuf有一个名为“bytes”的类型,它可以存储任意数量的字节,相当于“C++字符串”。我不喜欢使用“bytes”的原因是它希望输入为C++字符串,即Boost IP需要转换为字符串。现在我的关注点在于:我想执行序列化,并通过TCP套接字发送编码后的协议缓冲区消息。我希望确保编码邮件大小尽可能小。 我目前使用的是以下.proto文件: syntax = "proto2" ..
发布时间:2022-03-09 17:07:57 其他开发

如何在不复制和保留std::string对象的情况下获得C++std::string字符数据的所有权?

如何在不复制和不保留源std::string对象的情况下获得std::string字符数据的所有权?(我希望在不同类型之间使用移动语义。) 我使用C++11Clang编译器和Boost。 基本上我想做一些与此相当的事情: { std::string s(“Possibly very long user string”); const char* mine = s. ..
发布时间:2022-03-09 14:24:01 C/C++开发

使用线程停止操作

我正在为游戏Scattegories开发一个程序。在程序中有一个表,玩家可以在定时器线程在后台工作时输入单词。我希望当时间结束时,玩家将不能再输入,轮到他结束。 我如何才能做到这一点? 表和计时器: void timer() { cout ..
发布时间:2022-02-27 14:58:48 C/C++开发

如何处理静电存储时长警告?

我完全是一个新手,试图从书本上学习C++。下面的代码可以正常工作并产生预期的输出,但是定义engine和randomInt的两行上有警告:“初始化‘Engine’的静电存储时间可能会抛出无法捕获的异常。” 如果我将第7行和第8行放在main()内,警告将完全消失,但是engine和randomInt对getNumber不可用。 我不知道如何修复警告。另外,也许更重要的是,除了main( ..
发布时间:2022-02-26 23:48:41 C/C++开发

一个很好的向量散列函数

我有一些整数向量,我希望将它们有效地存储在c++11中的unorder_map中。我的问题是: 如何最好地存储这些内容并针对.find查询进行优化? 我想出了以下hasher: class uint32_vector_hasher { public: std::size_t operator()(std::vector const& vec) const ..
发布时间:2022-02-21 23:38:27 C/C++开发

当我的Boost::ASIO TCP服务器刚刚开始运行(AKA io_service.run())时,如何启动&;Quot;事件&;Quot;?

基于Boost::ASIO客户端/服务器关系,只有当服务器线程处于“正在等待连接”状态时,我才必须从服务器程序启动客户端程序。 我的问题是如何了解这种状态? 作为示例使用asio example/serialization link,并将server.cpp的main函数替换为该代码: #include #include // wait ..
发布时间:2022-02-21 15:58:14 C/C++开发

是否“int size = 10;"?产生一个常量表达式?

以下代码在 gcc 4.8 和 Clang 3.2 下编译: int main(){整数大小 = 10;int arr[大小];} C++ 标准的 8.3.4/1 规定数组的大小必须是一个整数常量表达式,而 size 似乎不是.这是两个编译器中的错误,还是我遗漏了什么? 最新的 VC++ CTP 拒绝带有这个有趣消息的代码: 错误 C2466: 无法分配常量大小为 0 的数组 有趣 ..