@ -210,7 +210,7 @@ concept OpaqueHandleFunc = std::is_invocable_v<F, T*, opaque_handle_operation>
template < typename T , OpaqueHandleFunc < T > HandleF > // Note: This should be a lambda, or a free-function. it's lifetime must not end before the `opaque_handle` returned from this function does.
template < typename T , OpaqueHandleFunc < T > HandleF > // Note: This should be a lambda, or a free-function. it's lifetime must not end before the `opaque_handle` returned from this function does.
constexpr inline opaque_handle make_opaque_handle ( T * data , const HandleF & handler ) noexcept
constexpr inline opaque_handle make_opaque_handle ( T * data , const HandleF & handler ) noexcept
{
{
constexpr bool is_nothrow = std : : is_nothrow_invocable_v < HandleF , T * , opaque_handle_operation > ;
constexpr const bool is_nothrow = std : : is_nothrow_invocable_v < HandleF , T * , opaque_handle_operation > ;
struct object_handler
struct object_handler
{
{
@ -242,8 +242,8 @@ constexpr inline opaque_handle make_opaque_handle(T* data, const HandleF& handle
template < typename T , OpaqueHandleFunc < T > HandleF >
template < typename T , OpaqueHandleFunc < T > HandleF >
constexpr inline opaque_handle make_opaque_handle ( T * data , HandleF & & handler ) noexcept ( std : : is_nothrow_move_constructible_v < HandleF > )
constexpr inline opaque_handle make_opaque_handle ( T * data , HandleF & & handler ) noexcept ( std : : is_nothrow_move_constructible_v < HandleF > )
{
{
constexpr bool is_nothrow = std : : is_nothrow_invocable_v < HandleF , T * , opaque_handle_operation > ;
constexpr const bool is_nothrow = std : : is_nothrow_invocable_v < HandleF , T * , opaque_handle_operation > ;
constexpr bool is_nothrow_ctor = std : : is_nothrow_move_constructible_v < HandleF > ;
constexpr const bool is_nothrow_ctor = std : : is_nothrow_move_constructible_v < HandleF > ;
struct object_handler
struct object_handler
{
{