Использование raw_input после печати, не выполняется в правильном порядке

C ++ 17, вероятно, предоставит общие средства для запросов к функциям. Подробнее см. В N4502 , но в качестве самостоятельного примера рассмотрим следующее.

Эта часть является постоянной частью, помещает ее в заголовок.

// See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf.
template 
using void_t = void;

// Primary template handles all types not supporting the operation.
template  class, typename = void_t<>>
struct detect : std::false_type {};

// Specialization recognizes/validates only types supporting the archetype.
template  class Op>
struct detect>> : std::true_type {};

В следующем примере, взятом из N4502 , показано использование:

// Archetypal expression for assignment operation.
template 
using assign_t = decltype(std::declval() = std::declval())

// Trait corresponding to that archetype.
template 
using is_assignable = detect;

. По сравнению с другими реализациями это довольно просто: приведенный набор инструментов ( void_t и detect). Кроме того, сообщалось (см. N4502 ), что оно заметно более эффективно (время компиляции и потребления памяти компилятора), чем предыдущие.

Вот живой пример , который включает настройки переносимости для GCC pre 5.1.

0
задан user62099 18 January 2019 в 15:18
поделиться