mirror of
https://github.com/boostorg/core.git
synced 2025-11-29 05:40:14 +01:00
Moved checked deleters into internal namespace to block unintended ADL.
This prevents adding namespace boost to ADL when the deleters are used in template parameters, e.g. in std::unique_ptr.
This commit is contained in:
@@ -39,6 +39,10 @@ compile-fail checked_delete_fail.cpp
|
||||
: $(warnings-as-errors-off) ;
|
||||
compile-fail checked_delete_fail2.cpp
|
||||
: $(warnings-as-errors-off) ;
|
||||
compile-fail checked_deleter_compile_fail_adl.cpp
|
||||
: $(warnings-as-errors-off) ;
|
||||
compile-fail checked_array_deleter_compile_fail_adl.cpp
|
||||
: $(warnings-as-errors-off) ;
|
||||
|
||||
compile ref_ct_test.cpp ;
|
||||
run ref_test.cpp ;
|
||||
|
||||
30
test/checked_array_deleter_compile_fail_adl.cpp
Normal file
30
test/checked_array_deleter_compile_fail_adl.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright Andrey Semashev 2024.
|
||||
* 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)
|
||||
*/
|
||||
/*!
|
||||
* \file checked_array_deleter_compile_fail_adl.cpp
|
||||
* \author Andrey Semashev
|
||||
* \date 07.02.2024
|
||||
*
|
||||
* This file tests that \c boost::checked_array_deleter doesn't bring namespace
|
||||
* \c boost into ADL.
|
||||
*/
|
||||
|
||||
#include <boost/core/checked_delete.hpp>
|
||||
|
||||
namespace boost {
|
||||
|
||||
void check_adl(checked_array_deleter< int > const&)
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace boost
|
||||
|
||||
int main()
|
||||
{
|
||||
// Must not find boost::check_adl
|
||||
check_adl(boost::checked_array_deleter< int >());
|
||||
}
|
||||
30
test/checked_deleter_compile_fail_adl.cpp
Normal file
30
test/checked_deleter_compile_fail_adl.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright Andrey Semashev 2024.
|
||||
* 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)
|
||||
*/
|
||||
/*!
|
||||
* \file checked_deleter_compile_fail_adl.cpp
|
||||
* \author Andrey Semashev
|
||||
* \date 07.02.2024
|
||||
*
|
||||
* This file tests that \c boost::checked_deleter doesn't bring namespace
|
||||
* \c boost into ADL.
|
||||
*/
|
||||
|
||||
#include <boost/core/checked_delete.hpp>
|
||||
|
||||
namespace boost {
|
||||
|
||||
void check_adl(checked_deleter< int > const&)
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace boost
|
||||
|
||||
int main()
|
||||
{
|
||||
// Must not find boost::check_adl
|
||||
check_adl(boost::checked_deleter< int >());
|
||||
}
|
||||
Reference in New Issue
Block a user