С++ 11 вводит объект с именем std::ignore
:
const /* unspecified */ ignore;
Для краткости пусть
typedef decltype(std::ignore) T;
Из того, что я могу сказать, единственным требованием для T
является то, что он CopyAssignable
, из-за спецификации std::tie
[С++ 11, 20.4.2.4:7].
В g++ - 4.8 я обнаружил, что T
дополнительно DefaultConstructible
(например, T x;
компиляции). Это поведение, определяемое реализацией?
(Если есть другие требования к T
, которые я пропустил, пожалуйста, уточните.)