// // Copyright (c) 2019-2024 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_MYSQL_UNDERLYING_ROW_HPP #define BOOST_MYSQL_UNDERLYING_ROW_HPP #include #ifdef BOOST_MYSQL_CXX14 namespace boost { namespace mysql { /** * \brief Type trait to retrieve the underlying row type. * \details * Given an input type `T` satisfying the `StaticRow` concept, * this trait is an alias for its underlying row type. It is defined as follows: * \n * \li If `T` is a marker type, like \ref pfr_by_name "pfr_by_name", `underlying_row_t` * is an alias for the marker's inner type `U`. * \li If `T` is not a marker type (e.g. it's a Boost.Describe struct or a `std::tuple`), * `underlying_row_t` is an alias for `T`. * * For instance, \ref static_results::rows uses this trait to determine its return type. */ template using underlying_row_t = #ifdef BOOST_MYSQL_DOXYGEN __see_below__ #else detail::underlying_row_t #endif ; } // namespace mysql } // namespace boost #endif #endif