1
template <typename T> class ClassA : public ::testing::Test {
public:
ClassA() {}
constexpr static uint ZERO = 0;
};
typedef ::testing::Types<ClassB, ClassC, ClassD> ParamTypes;
TYPED_TEST_CASE(ClassA, ParamTypes);
template <> constexpr uint ClassA<test::ClassB>::ZERO;
template <> constexpr uint ClassA<test::ClassC>::ZERO;
template <> constexpr uint ClassA<test::ClassD>::ZERO;
TYPED_TEST(ClassA, testSomething) { ASSERT_EQ(ClassA::ZERO, 0); } ??
TYPED_TEST(ClassA, testSomething) { ASSERT_EQ(this->ZERO, 0); } ??
Каков правильный способ использования статического constexpr внутри типизированного теста с тестом google?Использование статического constexpr в gtest typed test
Я думаю, что обе формы вы представлены законны ... –
@ W.F. они не работают – Lorac
Я думал, что вы спрашиваете, можно ли получить доступ к static constexpr с помощью 'this->'. Я предполагаю, что он не работает, когда вы переходите к тестовому неполному шаблону ... «ClassA» является шаблоном, и поэтому он должен быть специализированным, чтобы интерпретироваться как полный тип ... –