草庐IT

assert_not

全部标签

c++ - 谷歌测试 Gtest.cc :812: error: 'gettimeofday' was not declared in this scope

我正在尝试通过命令行通过MinGW编译Google测试,但是当我尝试使用命令进行编译时gcc-ID:\gtest-ID:\gtest\include-ID:\gtest\include\gtestsrc\gtest_main.ccsrc\gtest-all.cc它抛出错误Gtest.cc:812:错误:'gettimeofday'未在此范围内声明我通过VisualStudio成功编译,所以我猜这不是代码的错误。还有其他人遇到过这个问题并且知道解决方案吗? 最佳答案 and是两个不同的包含

c++ - 使用C++ catch框架验证assert语句

是否可以使用C++CATCH框架来验证assert语句是否正确识别无效前提条件?//SourcecodevoidloadDataFile(FILE*input){assert(input!=NULL);...}//TestcodeTEST_CASE("loadDataFileassertsoutwhenpassedNULL","[loadDataFile]"){loadDataFile(NULL)//NowwhatdoIlookfor?} 最佳答案 假设您的示例的第一部分是被测源代码,第二部分是单元测试,那么您需要选择如何处理:一些

c++ - 错误 : 'object' was not declared in this scope

我是C++的新手,正在尝试制作大富翁游戏。不幸的是,它仍然显示两个类之间的声明错误。我已经尝试了所有方法,但真的不知道问题出在哪里。错误:“玩家”未在此范围内声明。引擎.h#ifndefENGINE_H#defineENGINE_H#include"Player.h"#includeusingnamespacestd;classEngine{public:Engine();//methodthatstartswithgame,takerandomnumberforgettingnumberofplayers,setplayerstovectorvoidplay();//methodwh

c++ - 索引上的 static_assert 在编译时知道

有没有办法静态断言编译时已知的索引,否则在运行时断言?示例:templateclassFoo{T_data[Dim];public:constT&operator[](intidx)const{static_assert(idxfoo;foo[0];foo[1];foo[2];//compilererrorfor(inti=0;i1}return0;} 最佳答案 您可以简单地抛出异常或断言。它将在constexpr上下文中编译失败。这仅在可以在constexpr上下文中评估抛出条件时才有效。请注意,某些版本的gcc中有一个错误会阻止

c++ - C++如何像Java Spring Assert一样检查条件并抛出异常

有没有标准的方法来做这样的事情?可用于Release模式(NDEBUG定义)检查失败时抛出异常。最好使用标准库或boost。为了清楚起见,我在这里使用的“断言”(可能是不同的术语)特别是关于运行时问题,而不是编程问题,例如SpringAssert。在Java世界中。Microsoft.VisualStudio.TestTools.CppUnitTestFramework是很好的候选人,但它是为了测试目的。 最佳答案 在我的一些项目中我使用:voidASSERT(constboolcond,conststd::string&text)

c++ - 调用不可用函数 'system' : not available on iOS

我是cocos2d-x的新手,在编译我的项目时遇到这个错误。Calltounavailablefunction'system':notavailableoniOS我看到这个调用不再适用,但是我可以用什么来代替它?任何见解将不胜感激!boolFileUtils::removeDirectory(conststd::string&path){#if!defined(CC_TARGET_OS_TVOS)std::stringcommand="rm-r";//Pathmayincludespace.command+="\""+path+"\"";if(system(command.c_str(

c++ - C++ 模板的部分特化 : template parameter not deducible

下面的代码工作正常:templateclassFib{};templateclassFib{};但是下面的代码显示错误为:Error:templateparametersnotdeducibleinpartialspecialization:templateclassFib{};templateclassFib{};你能解释一下这种行为的原因吗? 最佳答案 我相信您只是缺少部分特化的正确语法:templateclassFib{};templateclassFib{};模板上的第一个参数是类型,而第二个只是一个常量值。

c++ - 是否可以编写这些 pure_assert 和 const_assert 宏?

GCC__attribute__((pure))和__attribute__((const))分别允许将函数声明为无副作用和引用透明;假设我想编写pure_assert和const_assert宏,其参数必须是适当严格级别的表达式,即:assert(oops_a_side_effect());静默导致调试和发布中的不同行为,但是:pure_assert(oops_a_side_effect());const_assert(oops_read_a_global());至少在调试版本中会出现编译时错误。由于我希望是显而易见的原因,您不能只创建一个声明为__attribute__((pure

c++ - 如何使用 BOOST_STATIC_ASSERT

#include#includeusingnamespacestd;//Iunderstandhowthefollowingtemplatefunctionworks//template//TGetMax(Ta,Tb){//Tresult;//result=(a>b)?a:b;//return(result);//}//Ihavedifficultiestounderstandhowthefollowingcodeworks//whenweshouldusethissyntaxtemplatevoidaccepts_values_between_1_and_10(){BOOST_STA

c++ - xutility.h 错误 C2064 : term does not evaluate to a function taking 2 arguments

我有问题要问。我创建了一个名为AstarPlanlama的类并具有以下2个函数:boolAstarPlanlama::nodeComp(constNode*lhs,constNode*rhs){returnlhs->FF;}voidAstarPlanlama::enKucukFliNodeBul(std::list*OPEN){std::list::iteratorit=std::min_element(OPEN->begin(),OPEN->end(),&AstarPlanlama::nodeComp);OPEN->sort(&AstarPlanlama::nodeComp);Q=O