С++ 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, которые я пропустил, пожалуйста, уточните.)