| 320 | |
| 321 | template<typename T, typename U, U I> |
| 322 | constexpr decltype(auto) get(T && x, integral_constant<U, I> i) |
| 323 | { |
| 324 | using just_t = std::decay_t<T>; |
| 325 | if constexpr (detail::is_tuple<just_t>::value) { |
| 326 | return detail::tuple_get((T &&) x, i); |
| 327 | } else if constexpr (std::is_aggregate_v<just_t>) { |
| 328 | auto tup = detail::tie_aggregate(x); |
| 329 | return detail::tuple_get(tup, i); |
| 330 | } else { |
| 331 | static_assert( |
| 332 | sizeof(T) != sizeof(T), |
| 333 | "boost::parser::get() is only defined for boost::parser::tuple " |
| 334 | "and aggregate structs."); |
| 335 | } |
| 336 | } |
| 337 | |
| 338 | }} |
| 339 |
no test coverage detected