boost_no_func_tmp_order.cxx

来自「boost库提供标准的C++ API 配合dev c++使用,功能更加强大」· CXX 代码 · 共 50 行

CXX
50
字号
//  (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);
}

}





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?