c++14相关内容

递归解压缩模板包以实现无参数功能

我正在尝试使用可变参数模板类型包创建一个结构模板,该模板可以扣除传入的所有类型的大小之和. 在下面找到一个简化的示例,在实际环境中,计算出的大小用于创建其他成员对象. 模板结构体大小{模板静态constexpr size_t sizesum(){返回sizeof(Fir ..
发布时间:2021-04-20 18:57:22 其他开发

GCC中的C ++ 14支持是实验性的

引用有关C ++ 14的GCC页面 重要提示:由于最终的ISO C ++ 14标准是最近才发布的,因此GCC的支持是实验性.不会尝试与不反映最终标准的C ++ 14功能实现保持向后兼容性. 我找不到 experimental 的官方GCC定义.正如最后一句话提到的,它仅适用于非标准功能的向后兼容性吗?还是表明它是否稳定?同一页上的前面一句话说 C ++ 14功能在GCC的Subv ..
发布时间:2021-04-20 18:57:18 C/C++开发

std :: unique_ptr与std :: map

我有一个 std :: map ,其中的键是 std :: shared_ptr ,值是 std :: unique_ptr ,其中 Foo 和 Bar 是不同于第三方库的类.我正在使用这个 std :: map 对象作为内存中的缓存. 我想知道将给定 Bar 传递给 std :: unique_ptr 的最佳方法是从该方法中插入新条目,然后从该方法返回.code>是 ..
发布时间:2021-04-20 18:57:14 C/C++开发

如何编写带有可选返回值的包装函数的Lambda

我试图编写一个lambda来度量任意函数的执行时间.在很多帮助下,我已经针对C ++ 14和具有返回值的函数进行了管理,请参见 如果使用C ++ 11编译器(例如带有-std = gnu ++ 11的g ++)进行编译,则它将使用模板函数,因此在这里可以很好地工作.如果使用C ++ 14编译器(-std = gnu ++ 14)进行编译,它将使用lambda,因此出现以下编译错误消息: ..
发布时间:2021-04-20 18:57:11 C/C++开发

为什么用ref-qualifier&声明一个删除的赋值运算符

据我所知,用户声明的赋值运算符不同于内置运算符,如此stackoverflow答案所述.但是,为什么要加上“&"删除操作员? //C ++类MyType{上市://...MyType&运算符=(MyType const&)&=删除;MyType&运算符=(MyType&)&noexcept =默认值;//更多的}; 我之所以这样问,是因为我的静态代码检查器在这里报告了违反规则的情况,因此我没 ..
发布时间:2021-04-20 18:57:08 C/C++开发

unique_ptr,您引用的是已删除的函数

我正在尝试将 unique_ptr 移至 WriteAsync 方法.这按预期工作.我现在遇到的问题是将唯一指针的所有权移至 strand.post lambda,然后再次将其移至 QueueMessage . QueueMessage 使用 std :: unique_ptr> . 在这种情况下,对我来说最简单的方法是只使用 shared_ptr ..
发布时间:2021-04-20 18:57:05 C/C++开发

使用C ++ 14的gcc 6.3出现异常清除错误

我正在尝试使用gcc 6.3编译我的C ++ 14项目,并且得到: hm3/pairblob.cc:在静态成员函数中,"static std :: unique_ptrhm3 :: PairBlob :: create(const hm3 :: PairBlob *)':hm3/pairblob.cc:64:44:错误:此展示位置的异常清除新选择了非展示位置 ..
发布时间:2021-04-20 18:56:56 其他开发

在共享库中定义抽象类的接口

说我有一个抽象的基类,定义如下: interface.hpp #ifndef INTERFACE_HPP#定义INTERFACE_HPP 1类接口{上市:虚拟空func()= 0;};#endif//INTERFACE_HPP 然后,我将翻译单元 test.cpp 编译为共享对象 test.so : test.cpp #include"interface.hpp"#incl ..
发布时间:2021-04-20 18:56:52 C/C++开发

使用SFINAE禁用模板类成员功能

是否可以使用SFINAE和 std :: enable_if 禁用模板类的单个成员函数? 我目前有一个与此相似的代码: #include#include#include#include班级基础{上市:virtual int f(){返回0;}};template派生的类别:公 ..
发布时间:2021-04-20 18:56:38 C/C++开发

括号初始化列表和无符号类型

gcc 8和clang 7不接受以下代码,这些代码应默认构造 unsigned int 类型的临时代码: unsigned int ui = unsigned int {}; clang 7报告错误,例如 :6:22:错误:“未签名"之前的预期主表达式 Visual C ++ 2015和2017接受此要求. 很明显,这适用于 int 之类的类型或任何默认可构造 ..
发布时间:2021-04-20 18:56:35 C/C++开发

C ++编译时子字符串

我的代码库很大,它广泛使用 __ FILE __ 进行日志记录.但是,它包含完整路径,不需要(1),(2)可能会违反安全性. 我正在尝试编写编译时子字符串表达式.最终以此解决方案 静态constexpr cstr PastLastSlash(cstr str,cstr last_slash){返回* str =='\ 0'吗?last_slash:* str =='/'吗?PastLast ..
发布时间:2021-04-20 18:56:32 C/C++开发

为什么constexpr不是所有函数的默认值?

放宽constexpr的规则后,似乎这些函数可以在任何地方使用.也可以在常量(constexpr)和局部(可变)变量上调用它们.因此对我来说,这似乎只是编译器的提示(如内联).我只是一直在各处编写它,如果编译器抱怨,请将其删除.因此,编译器似乎知道什么都可以在编译时求值.为什么不是默认行为,为什么我必须将任何内容标记为constexpr? 解决方案 constexpr 是接口保证.这意味着 ..
发布时间:2021-04-20 18:56:26 C/C++开发

如何在C ++中使用CPR库?

我以前是用python开发的,现在我已切换到C ++.我找到了一个很酷的库,叫做CPR https://github.com/whoshuu/cpr 使HTTP请求像python请求一样容易.像在python中一样,没有像pip这样的简单pkg管理器可以在C ++中安装库.如何在我的项目中使用cpr.其中没有dll或lib文件. 解决方案 c ++ 程序包通常作为一组开发标头和静态/共享库 ..
发布时间:2021-04-20 18:56:22 C/C++开发

没有外部库的C ++中的HTTP请求?

因此,此问题以前曾被问过,但所指出的一般答案是使用外部库,例如cURLpp.所以我很好奇,是否可以仅使用C ++ 14起的标准库来完成HTTP请求.这有多难? 例如,我想获取一个XML文档并将其存储在要解析的字符串中.要实现这一目标,必须采取什么步骤? 如果有人好奇,我将以此为学习经验,以更好地了解HTTP请求的工作原理. 解决方案 在我看来,您想从头开始在POSIX套接字AP ..
发布时间:2021-04-20 18:56:19 C/C++开发