boost_no_exp_func_tem_arg.cxx

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

CXX
56
字号
//  (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_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
//  TITLE:         non-deduced function template parameters
//  DESCRIPTION:   Can only use deduced template arguments when
//                 calling function template instantiations.

#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200)
#error "This is known to be buggy under VC6"
#endif


namespace boost_no_explicit_function_template_arguments{

struct foo
{
  template<class T> int bar(){return 0;}
  template<int I>   int bar(){return 1;}
};

int test_0()
{
  return 0;
}


template <int i>
bool foo_17041(int j)
{
   return (i == j);
}

int test()
{
   foo f;
   int a = f.bar<char>();
   int b = f.bar<2>();
   if((a !=0) || (b != 1))return -1;

   if(0 == foo_17041<8>(8)) return -1;
   if(0 == foo_17041<4>(4)) return -1;
   if(0 == foo_17041<5>(5)) return -1;
   return 0;
}

}




⌨️ 快捷键说明

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