From d114fed0737eca249d375098ae7cf71ade05b596 Mon Sep 17 00:00:00 2001 From: Ed Catmur Date: Wed, 22 Feb 2023 19:40:34 +0000 Subject: [PATCH] Use BOOST_DEFAULTED_FUNCTION on empty destructors The compiler-generated copy constructor and copy assignment operator are deprecated since C++11 on classes with user-declared destructors. This change allows clean compilation with the -Wdeprecated-copy-dtor/-Wdeprecated-copy-with-user-provided-dtor flag. --- .../detail/exception_implementation.hpp | 12 ------------ .../boost/property_tree/detail/file_parser_error.hpp | 4 ++-- include/boost/property_tree/exceptions.hpp | 6 +++--- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/include/boost/property_tree/detail/exception_implementation.hpp b/include/boost/property_tree/detail/exception_implementation.hpp index bb39135fd9..cd3434ae42 100644 --- a/include/boost/property_tree/detail/exception_implementation.hpp +++ b/include/boost/property_tree/detail/exception_implementation.hpp @@ -35,10 +35,6 @@ namespace boost { namespace property_tree { } - inline ptree_error::~ptree_error() throw() - { - } - /////////////////////////////////////////////////////////////////////////// // ptree_bad_data @@ -48,10 +44,6 @@ namespace boost { namespace property_tree { } - inline ptree_bad_data::~ptree_bad_data() throw() - { - } - template inline D ptree_bad_data::data() const { @@ -68,10 +60,6 @@ namespace boost { namespace property_tree } - inline ptree_bad_path::~ptree_bad_path() throw() - { - } - template inline P ptree_bad_path::path() const { diff --git a/include/boost/property_tree/detail/file_parser_error.hpp b/include/boost/property_tree/detail/file_parser_error.hpp index 1a0e49aade..167b99cd38 100644 --- a/include/boost/property_tree/detail/file_parser_error.hpp +++ b/include/boost/property_tree/detail/file_parser_error.hpp @@ -34,11 +34,11 @@ namespace boost { namespace property_tree { } - ~file_parser_error() throw() BOOST_OVERRIDE + BOOST_DEFAULTED_FUNCTION(~file_parser_error() throw() BOOST_OVERRIDE, // gcc 3.4.2 complains about lack of throw specifier on compiler // generated dtor { - } + }) /////////////////////////////////////////////////////////////////////// // Data access diff --git a/include/boost/property_tree/exceptions.hpp b/include/boost/property_tree/exceptions.hpp index ab4a9511b4..2c732ec843 100644 --- a/include/boost/property_tree/exceptions.hpp +++ b/include/boost/property_tree/exceptions.hpp @@ -31,7 +31,7 @@ namespace boost { namespace property_tree /// @param what The message to associate with this error. ptree_error(const std::string &what); - ~ptree_error() throw() BOOST_OVERRIDE; + BOOST_DEFAULTED_FUNCTION(~ptree_error() throw() BOOST_OVERRIDE, {}); }; @@ -48,7 +48,7 @@ namespace boost { namespace property_tree template ptree_bad_data(const std::string &what, const T &data); - ~ptree_bad_data() throw() BOOST_OVERRIDE; + BOOST_DEFAULTED_FUNCTION(~ptree_bad_data() throw() BOOST_OVERRIDE, {}); /// Retrieve the data associated with this error. This is the source /// value that failed to be translated. You need to explicitly @@ -70,7 +70,7 @@ namespace boost { namespace property_tree template ptree_bad_path(const std::string &what, const T &path); - ~ptree_bad_path() throw() BOOST_OVERRIDE; + BOOST_DEFAULTED_FUNCTION(~ptree_bad_path() throw() BOOST_OVERRIDE, {}); /// Retrieve the invalid path. You need to explicitly specify the /// type of path.