相关疑难解决方法(0)

将模板参数传递给宏的方法

我无法将Google Test的ASSERT_THROW()宏与多个模板参数结合使用.考虑一下我想确保Matrix<5,1>抛出的构造:

ASSERT_THROW(Matrix<5,1>(), std::runtime_error);
Run Code Online (Sandbox Code Playgroud)

(这个例子没有多大意义,当然这不应该抛出,但它是在简化我所拥有的之后留下的.)

我从MS VC++ 2008获得此输出:

warning C4002: too many actual parameters for macro 'ASSERT_THROW'
error C2143: syntax error : missing ',' before ';'
Run Code Online (Sandbox Code Playgroud)

虽然没有问题:

ASSERT_THROW(Matrix<1>(), std::runtime_error);
Run Code Online (Sandbox Code Playgroud)

我怎样才能克服这个问题?

谢谢!

c++ macros googletest

20
推荐指数
3
解决办法
5467
查看次数

标签 统计

c++ ×1

googletest ×1

macros ×1