12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // (C) Copyright John Maddock 2001.
- // Use, modification and distribution are subject to 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)
- // See http://www.boost.org/libs/config for most recent version.
- // MACRO: BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- // TITLE: no function template ordering
- // DESCRIPTION: The compiler does not perform
- // function template ordering or its function
- // template ordering is incorrect.
- //
- // template<typename T> void f(T); // #1
- // template<typename T, typename U> void f(T (*)(U)); // #2
- // void bar(int);
- // f(&bar); // should choose #2.
- namespace boost_no_function_template_ordering{
- template<typename T>
- bool f(T)
- {
- return false;
- }
- template<typename T, typename U>
- bool f(T (*)(U))
- {
- return true;
- }
- void bar(int)
- {
- }
- int test()
- {
- int i = 0;
- return f(i) || !f(&bar);
- }
- }
|