该代码在VS2015中可以正常编译,但在VS2019中,代码会为CPPUNIT引发错误。 C++ 17 std不支持吗?如果没有解决这些错误:
码:
class CAbcTestCase : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(CAbcTestCase);
CPPUNIT_TEST(AbcThruRMB);
CPPUNIT_TEST(AbcMultiThruRMB);
CPPUNIT_TEST(AbcFolderThruRMB);
CPPUNIT_TEST(AbcUseFileThruRMB);
........
........
//CPPUNIT_TEST(Abc_UpdateRegistry);
CPPUNIT_TEST(Abc_Initialize);
**CPPUNIT_TEST_SUITE_END();** // *This line has all the below mentioned errors*
}
CPPUNIT错误:错误C2039'auto_ptr':不是'std'的成员
错误C2065'auto_ptr':未声明的标识符。
错误C2660'CHistoryTestCase::suite':函数未使用1个参数
错误C2275'CppUnit::TestSuite':非法使用此类型作为表达式
错误( Activity )E0135 namespace “std”没有成员“auto_ptr”
最佳答案
Does std C++17 does not support CPPUNIT?
您的关系倒退了。该程序必须与编程语言兼容。因此,问题是,(此版本的)CPPUNIT是否可以与C++ 17一起使用?
基于错误,如果 CPPUNIT确实确实使用
std::auto_ptr
,则它与C++ 17不兼容,因为该类已从标准库中删除。就是说,也许这是与C++ 17而不是CPPUNIT本身不兼容的测试用例之一吗?还应注意,根据维基百科,CPPUNIT已被“ fork 了好几次”。如果是不兼容的框架,则可以使用主动开发的fork解决此问题。
关于c++ - std C++ 17不支持CPPUNIT吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63052437/