На мой вопрос type as returntype in c++ я был предоставлен ответ, который дал мне такую структуру:«используя тип» в C++ вызывает несколько ошибок
template <int N>
struct int_type {
using type = std::conditional_t<N <= 8, std::uint8_t,
std::conditional_t<N <= 16, std::uint16_t,
std::conditional_t<N <= 32, std::uint32_t,
std::conditional_t<N <= 64, std::uint64_t,
std::uintmax_t>>>>;
};
Это казалось сделать excactly то, что мне нужно, как никогда практика выглядит по-другому, так как я не могу скомпилировать его из-за следующие ошибки:
...Error: expected nested-name-specifier before 'type'
using type = std::conditional_t<N <= 8, std::uint8_t,
^
...Error: using-declaration for non-member at class scope
...Error: expected ';' before '=' token
using type = std::conditional_t<N <= 8, std::uint8_t,
^
...Error: expected unqualified-id before '=' token
Я попытался Google, но ни один из постов, которые я нашел, кажется, адресовать эти конкретные проблемы. Может ли кто-нибудь объяснить мне, что не так с этим кодом? Я довольно новичок в C++
'conditional_t' - это вспомогательный тип, введенный в C++ 14. Вы компилируете флаг '-std = C++ 14'? – vsoftco
@PeterT вот что, 'std :: conditional_t' является typedef для' условного :: типа' http://en.cppreference.com/w/cpp/types/conditional – vsoftco
@vsoftco мой плохой, я должен " я прочитал это более внимательно – PeterT