eb43.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 43 行

C
43
字号
// { dg-do assemble  }// All the pointer_to_binary_function cases used to fail because g++// couldn't handle converting an overloaded function to a class type.// The first one should still fail because it requires an implicit conversion// to pointer_to_binary_function, which has an `explicit' constructor.#include <vector>#include <algorithm>#include <functional>using namespace std;template <class T> class Expr {public :  Expr(){};  Expr(const T&){};};template <class T >inline bool compare(const Expr<T> a, const Expr<T> b){ return true; }int main(){  vector<int>	a(3);  sort( a.begin(), a.end(),	static_cast<bool (*)(const Expr<int>,const Expr<int>)>(compare) );  sort( a.begin(), a.end(), compare<int> );  sort<vector<int>::iterator,       pointer_to_binary_function<const Expr<int>, const Expr<int>, bool> >    ( a.begin(), a.end(), compare ); // { dg-error "" } constructor is explicit  sort( a.begin(), a.end(),	ptr_fun<const Expr<int>, const Expr<int>, bool> (compare) );  sort( a.begin(), a.end(),	ptr_fun(compare<int>) );  sort( a.begin(), a.end(),	pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare) );  sort( a.begin(), a.end(),	pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare<int>) );  sort( a.begin(), a.end(),	pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare<>) );}

⌨️ 快捷键说明

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