草庐IT

c++ - google test/mock vs boost vs catch 对 c++14/c++17 的支持

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在评估哪种测试框架最适合我。在这三个选项中选择:googletest、boost.test和catch。我想要一些健壮的东西,它没有那么多依赖性,并且能够在需要时支持C++14/C++17。还有一个问题,你知道航电/航天领域的大公司用的是什么框架吗?

c++ - C++14 中的 RVO 和删除的移动构造函数

最近几天我一直在学习(N)RVO。正如我在复制省略文章中读到的关于C++14的cppreference:...thecompilersarepermitted,butnotrequiredtoomitthecopy-andmove-(sinceC++11)constructionofclassobjectsevenifthecopy/move(sinceC++11)constructorandthedestructorhaveobservableside-effects.Thisisanoptimization:evenwhenittakesplaceandthecopy-/move-

c++ - C++14 中一年中小数日的计算

我使用HowardHinnantsdate.h库编写了以下代码,以计算当前时间的年份小数日。我想知道是否有更短的方法来做到这一点,因为我的代码感觉像是对std::chrono和date调用的矫枉过正。我能否直接计算自年初以来的小数天数(以微秒为精度)并避免我的两步法?#include#include#include"date.h"intmain(){//Getactualtime.autonow=std::chrono::system_clock::now();//Getthenumberofdayssincestartoftheyear.autoymd=date::year_mont

c++ - 模板概念是否达到了 c++14?

Concepts是一个不错的功能,例如,当模板实例化出现问题时,它会用易读的消息替换丑陋的编译器错误输出。不幸的是他们没有得到toC++11有人知道它是否适用于C++14吗? 最佳答案 没有,但是thisinterviewwithBjarneStrostrup说他们将被放入实现者可能使用的“技术规范”。 关于c++-模板概念是否达到了c++14?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c++ - 即使类不包含数据,C++ 14 是否仍会生成默认函数?

在中断16年后,我正在重读ScottMeyers的EffectiveC++。虽然我没有读过最新的C++标准,但我注意到自EffectiveC++第二版编写以来C++发生了变化。在他的书的第三版中,ScottMeyers提到即使你有一个空类,这意味着没有任何东西可以初始化或分配,C++编译器仍然会生成至少3个默认函数,即默认构造函数、默认复制构造函数、赋值运算符,可能还有其他一些函数。根据迈耶斯先生的说法,以下代码将导致上述功能的生成。classEmpty{}EmptyE1;//Defaultconstructor.EmptyE2(E1);//Defaultcopyconstructor

Error: Microsoft Visual C++ 14.0 or greater is required 我的解决办法

今天想进行特征提取,利用的是mRMR方法,想安装一个pymrmr的库,但是给出了缺少MicrosoftC++BuildTools报错,我来记录一下我的解决过程。这里写目录标题一、报错,缺少MicrosoftC++BuildTools二、安装步骤1.打开链接2.点击下载生成工具3.只需要安装“使用C++的桌面开发”4.因为实在太大了,更改安装路径(要是你们C盘内存够用的话,这一项不用操作)5.只更改第一项路径,其余路径不用动,否则会报错。(要是你们C盘内存够用的话,这一项不用操作)6.安装还是很快的,取决于你的网速。7.重启电脑,一定要重启。8.进行pip安装库一、报错,缺少MicrosoftC

c++ - 默认情况下在 Sublime Text 3 中将程序编译为 c++ 14

我知道我们可以使用g++编译器将程序编译为C++。但是g++编译器默认是98版本。要将其作为C++14运行,我们需要在终端中添加-std=c++14。SublimeText由于其轻量级和功能而被认为是竞争性编程的有值(value)的编辑器。在这些比赛中,时间很重要,因此时间被浪费在复制文本文件然后从终端运行。与98相比,C++14具有丰富的库和其他重要功能。因此,人们希望能够在sublimetext和C++14上编译代码。但是我如何确保在SublimeText3中编译代码时,它默认编译为C++14?经过一番摆弄后,我想出了以下解决方案-转到包并提取C++.sublime-package

c++ - C++14封装大量参数

我想编写一个使用很多参数的函数,我将其称为a、b和c。我有四种在C++14中实现它的选择。对于2018年新的现代C++项目,这些风格中的哪一种最符合ISOC++的理念??其他风格指南推荐哪些风格?面向对象风格classComputer{inta,b,c;public:Computer(inta,intb,intc):a(a),b(b),c(c){}intcompute(int)const{//dosomethingwitha,b,c}};...constComputercomputer(a,b,c);intresult=computer.compute(123);优点:C++程序员容易

C++14 元编程 : Automagically build a list of types at compile/init time

使用C++14和CuriouslyRecurringTemplatePattern(CRTP)以及可能的Boost.Hana的某种组合(或boost::mpl如果您愿意),我可以在编译时(或静态初始化时)构建一个类型列表而无需显式声明吗?例如,我有这样的东西(在Coliru上查看):#include#include#includenamespace{structD1{staticconstexprautoval=10;};structD2{staticconstexprautoval=20;};structD3{staticconstexprautoval=30;};}intmain(

c++ - 为什么在 C++11/C++14 中有针对自动和大括号初始化器的特殊类型推导规则?

在他的CppCon2014演讲中"TypeDeductionandWhyYouCare",ScottMeyers提出了一个问题,为什么在C++11/C++14标准中有关于auto和大括号初始化器的特殊规则(他的问题从at36m05s开始)。auto与braced-init-list组合的语义在§7.1.6.4/6中定义。我想了想,也想不出一个用例。到目前为止,我所看到的最接近的例子是BjarneStroustrup使用它的一个例子。在他的Cpp2014talk"MakeSimpleTasksSimple!",他曾经使用auto来捕获初始化器(但只是作为一种变通方法)。这是代码(幻灯片3