Е
Size: a a a
Е
Е
🎄T
Е
initOneItem<std::size_t I>
и фолд по (initOneItem<Index>(item, data)...)
🎄T
operator[]
- std::optional<T>template<class Type,class Data,std::size_t ... Index>
void initItem(Type& item,Data& data,std::index_sequence<Index...> = {}) {
((get<0>(item) = data[item::name].get<decltype(get<0>(item)>().value_or(decltype(get<0>(item)),...);
}
get<0>(item)
хотелось бы как-то сохранить, чтоб не писать еще раз, ибо в реальности там еще хуже всёdecltype(get<0>(item)>().value_or(decltype(get<0>(item)),...)
D
D
Е
decltype(get<0>(item)>().value_or(decltype(get<0>(item)),...)
SS
for constexpr
, но в 20 не принялиD
for constexpr
, но в 20 не принялиfor template
?D
AB
operator[]
- std::optional<T>template<class Type,class Data,std::size_t ... Index>
void initItem(Type& item,Data& data,std::index_sequence<Index...> = {}) {
((get<0>(item) = data[item::name].get<decltype(get<0>(item)>().value_or(decltype(get<0>(item)),...);
}
get<0>(item)
хотелось бы как-то сохранить, чтоб не писать еще раз, ибо в реальности там еще хуже всёtemplate <typename T, size_t I>
using get_nth_t = decltype(get<I>(declval<T>()));
decltype(get<Index>(item))
-->
get_nth_t<Item&, Index>
AB
for template
?D
p
D
p
D
TS
L