#include <iostream>
using namespace std;
template < class T, class F = decltype( greater< T> ( ) ) >
class priority_queue {
private :
F comp;
public :
priority_queue ( F _comp) : comp( _comp) { }
} ;
bool smaller( int a, int b) { return a < b; }
int main ( ) {
// priority_queue<int> PA(); // dziala
priority_queue< int , decltype( smaller) > PB( smaller) ;
auto lessThan = [ ] ( const int & a, const int & b) { return a < b; } ;
// priority_queue<int, decltype(lessThan)> PC(lessThan); // dziala
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEYgPSBkZWNsdHlwZShncmVhdGVyPFQ+KCkpPgpjbGFzcyBwcmlvcml0eV9xdWV1ZSB7CnByaXZhdGU6CiAgICBGIGNvbXA7CiAgICAKcHVibGljOgogICAgcHJpb3JpdHlfcXVldWUgKEYgX2NvbXApIDogY29tcChfY29tcCkgeyB9Cn07Cgpib29sIHNtYWxsZXIoaW50IGEsIGludCBiKSB7IHJldHVybiBhIDwgYjsgfQoKaW50IG1haW4gKCkgewogICAvLyBwcmlvcml0eV9xdWV1ZTxpbnQ+IFBBKCk7IC8vIGR6aWFsYQogICAgcHJpb3JpdHlfcXVldWU8aW50LCBkZWNsdHlwZShzbWFsbGVyKT4gUEIoc21hbGxlcik7CiAgICAKICAgIGF1dG8gbGVzc1RoYW4gPSBbXShjb25zdCBpbnQmIGEsIGNvbnN0IGludCYgYikgeyByZXR1cm4gYSA8IGI7IH07Ci8vCXByaW9yaXR5X3F1ZXVlPGludCwgZGVjbHR5cGUobGVzc1RoYW4pPiBQQyhsZXNzVGhhbik7IC8vIGR6aWFsYQoJCiAgICByZXR1cm4gMDsKfQ==
compilation info
prog.cpp: In instantiation of 'class priority_queue<int, bool(int, int)>':
prog.cpp:17:54: required from here
prog.cpp:7:7: error: field 'priority_queue<int, bool(int, int)>::comp' invalidly declared function type
F comp;
^
stdout