我无法将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)
我怎样才能克服这个问题?
谢谢!