Самый последний проект предложения структурированных привязок (на котором была основана функция С++ 17) требует std::tuple_size
, member get
или std::get
и std::tuple_element
. Предыдущие черновики требуют только std::tuple_size
и member get
или std::get
. Насколько я могу судить, дискуссия о добавлении этого не обсуждалась, она появилась только в окончательном проекте. Есть ли веская причина требовать специализацию tuple_element
, учитывая, что я считаю, что она может быть реализована в целом как
template<std::size_t index, typename T>
struct tuple_element {
using type = decltype(std::get<index>(std::declval<T>()));
};
Кто-нибудь знает, почему это требование было добавлено?