// // Copyright (c) 2019-2023 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 BHO_MYSQL_DETAIL_ACCESS_HPP #define BHO_MYSQL_DETAIL_ACCESS_HPP #include namespace bho { namespace mysql { namespace detail { // Exposes access to the implementation of public access, which is sometimes // required by library internals. struct access { template static decltype(std::declval().impl_)& get_impl(T& obj) noexcept { return obj.impl_; } template static const decltype(std::declval().impl_)& get_impl(const T& obj) noexcept { return obj.impl_; } template static T construct(Args&&... args) { return T(std::forward(args)...); } }; } // namespace detail } // namespace mysql } // namespace bho #endif