From e9f986d11e046572aaf138f330c29f26182f794c Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 24 Oct 2018 12:06:45 +0300 Subject: [PATCH] Add compile-fail test for const boost::Wrapper --- test/swap/Jamfile.v2 | 9 +++++++++ test/swap/const_wrapper_fail.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/swap/const_wrapper_fail.cpp diff --git a/test/swap/Jamfile.v2 b/test/swap/Jamfile.v2 index 8384c93..091f403 100644 --- a/test/swap/Jamfile.v2 +++ b/test/swap/Jamfile.v2 @@ -16,6 +16,9 @@ local compile_tests = mixed_headers_2.cpp ; +local compile_fail_tests = + const_wrapper_fail.cpp ; + local run_tests = primitive.cpp specialized_in_boost.cpp @@ -49,6 +52,12 @@ rule test_all all_rules += [ compile $(file) : : "swap-$(test_name)" ] ; } + for file in $(compile_fail_tests) + { + local test_name = [ MATCH "([^.]*).cpp$" : $(file) ] ; + all_rules += [ compile-fail $(file) : : "swap-$(test_name)" ] ; + } + for file in $(run_tests) { local test_name = [ MATCH "([^.]*).cpp$" : $(file) ] ; diff --git a/test/swap/const_wrapper_fail.cpp b/test/swap/const_wrapper_fail.cpp new file mode 100644 index 0000000..da2e4c6 --- /dev/null +++ b/test/swap/const_wrapper_fail.cpp @@ -0,0 +1,28 @@ +// Copyright 2018 Andrzej Krzemieński +// Copyright 2018 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. + +#include + +namespace boost +{ + +template struct Wrapper +{ + T value; +}; + +template inline void swap( Wrapper & w, Wrapper & v ) +{ + boost::swap( w, v ); +} + +} // namespace boost + +int main() +{ + boost::Wrapper const w = { 2 }; + boost::Wrapper const v = { 3 }; + + swap( w, v ); +}