1 2 #ifndef BOOST_CONTRACT_TEST_DETAIL_UNPROTECTED_COMMAS_HPP_ 3 #define BOOST_CONTRACT_TEST_DETAIL_UNPROTECTED_COMMAS_HPP_ 4 5 // Copyright (C) 2008-2018 Lorenzo Caminiti 6 // Distributed under the Boost Software License, Version 1.0 (see accompanying 7 // file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt). 8 // See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html 9 10 namespace boost { namespace contract { namespace test { namespace detail { 11 12 // Used to test passing unprotected commas into macro parameters. 13 template<typename T1, typename Unused2, typename Unused3> 14 struct unprotected_commas { 15 typedef T1 type1; // For type macro parameters. 16 callboost::contract::test::detail::unprotected_commas17 static void call() {} // For code block macro parameters. 18 19 // For value macro parameters. sameboost::contract::test::detail::unprotected_commas20 template<typename U> static U& same(U& x) { return x; } sameboost::contract::test::detail::unprotected_commas21 template<typename U> static U* same(U* x) { return x; } 22 }; 23 24 } } } } // namespace 25 26 #endif // #include guard 27 28