1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <tuple> template <typename... Fields> class Record { private: typedef std::tuple<Fields...> tuple_t; tuple_t list; public: Record() {} template<unsigned I> auto get() -> typename std::tuple_element< I, tuple_t>::type& { return std::get<I>(list); } }; template<unsigned I, class... Fields> auto get(Record<Fields...>& r) -> decltype(r.template get<I>()) { return r.template get<I>(); } int main() { Record<int, double> r; get<0>(r); return 0; } |
I2luY2x1ZGUgPHR1cGxlPgoKdGVtcGxhdGUgPHR5cGVuYW1lLi4uIEZpZWxkcz4KY2xhc3MgUmVjb3JkIHsKICBwcml2YXRlOgogICAgdHlwZWRlZiBzdGQ6OnR1cGxlPEZpZWxkcy4uLj4gdHVwbGVfdDsKICAgIHR1cGxlX3QgbGlzdDsKCiAgcHVibGljOgogICAgUmVjb3JkKCkge30KCiAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBJPgogICAgYXV0byBnZXQoKQogICAgICAgIC0+IHR5cGVuYW1lIHN0ZDo6dHVwbGVfZWxlbWVudDwKICAgICAgICAgICAgICAgSSwgdHVwbGVfdD46OnR5cGUmCiAgICB7CiAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PEk+KGxpc3QpOwogICAgfQp9OwoKdGVtcGxhdGU8dW5zaWduZWQgSSwgY2xhc3MuLi4gRmllbGRzPgphdXRvIGdldChSZWNvcmQ8RmllbGRzLi4uPiYgcikKICAtPiBkZWNsdHlwZShyLnRlbXBsYXRlIGdldDxJPigpKQp7CiAgcmV0dXJuIHIudGVtcGxhdGUgZ2V0PEk+KCk7Cn0KCmludCBtYWluKCkgewogICAgUmVjb3JkPGludCwgZG91YmxlPiByOwogICAgZ2V0PDA+KHIpOwogICAgcmV0dXJuIDA7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2824 kB returned value: 0


