Wystarczy krótki pytanie podana funkcja, gdzie chcę, aby powrócić do podstawowych type enum class
:C++ std :: enable_if warianty ograniczające i problemy
Dlaczego ta wersja działa dobrze
template<typename T>
constexpr inline
typename std::enable_if_t<
std::is_enum<T>::value,
typename std::underlying_type_t<T>
>
enumValue(T p_rVal) noexcept
{
return static_cast<typename std::underlying_type_t<T>>(p_rVal);
}
if (enumValue(myEnumClass) == 0) {}
niniejsza awarii jednego z "nie pasującej funkcji przeciążony znaleźć" (VS 2015) błąd:
template<
typename T,
typename std::enable_if_t<
std::is_enum<T>::value,
typename std::underlying_type_t<T>
>
>
constexpr inline
typename std::underlying_type_t<T>
enumValue(T p_rVal) noexcept
{
return static_cast<typename std::underlying_type_t<T>>(p_rVal);
}
podziękowaniem s dużo za pomoc!
@ DAN Dlaczego odrzuciliście proponowaną zmianę przez Torbjörna? Ma to sens, aby poprawić formatowanie tego postu. – Walter
Nie potrzebujesz 'typename' przed' std :: underlying_type_t '. –
Oktalist
Tak, dobrze, przewaga C++ 14. Już je usunąłem, ale mimo to dziękuję za podpowiedź! – gilgamash