我正在尝试将catch2 TEMPLATE_TEST_CASE用于成对的类型,即我不需要为每个测试模板化一个类型,而是需要使用一对相关的类型。我以为我可以std::variant
用来存储这些对,但编译失败:error: expected primary-expression before ‘)’ token. auto outtype = std::get<0>(TestType);
。
对于此错误或此问题的替代解决方案,我将不胜感激。这是代码片段:
using varA = std::variant<OutputA, InputA>;
using varB = std::variant<OutputB, InputB>;
TEMPLATE_TEST_CASE("test", "[test][template]", varA, varB) {
auto outtype = std::get<0>(TestType);
auto intype = std::get<1>(TestType);
}