:표준 : 템플릿 매개 변수로 initializer_list 값은 내가 이런 일을하려고하고
template<typename enumType,
std::initializer_list<enumType> values,
std::initializer_list<std::string> mappings>
struct enum_converter {
enumType toEnum(const std::string& literal) { ... }
std::string toString(const enumType value) { ... }
};
나는 다음과 같이 사용하려는 :
enum test_enum {value_a, value_b};
struct test_enum_converter : public enum_converter<
test_enum,
{value_a, value_b},
{"a", "b"}> {};
GCC는 저에게 말한다 :
class std::initializer_list<_Tp> is not a valid type
for a template constant parameter.
const
을 유형에 추가해도 아무런 변화가 없습니다. 해결 방법이나 비슷한 해결책이 있습니까?
, CONST 문자 포인터하지만 작동 할 것이다. –
Im이 잘못되지 않았다면 const char은 전역으로 선언 된 경우에만 작동합니다. – Amadeus