/in/foo.cc: In instantiation of 'void quicksort(T*, T*) [with T = long long int]':
/in/foo.cc:24:14: required from here
/in/foo.cc:12:20: error: invalid conversion from 'long long int*' to 'long long int' [-fpermissive]
12 | T*l=begin,r=end-1;
| ~~~^~
| |
| long long int*
/in/foo.cc:13:12: error: invalid operands of types 'long long int' and 'long long int*' to binary 'operator-'
13 | for (;r-l>=0;) {
| ~^~
/in/foo.cc:15:15: error: invalid type argument of unary '*' (have 'long long int')
15 | while(*r<p) r--;
| ^~
/in/foo.cc:16:22: error: invalid type argument of unary '*' (have 'long long int')
16 | std::swap(*l,*r);l++;r--;
| ^~
/in/foo.cc:18:14: error: no matching function for call to 'quicksort(long long int*&, long long int)'
18 | quicksort(begin,r+1);
| ~~~~~~~~~^~~~~~~~~~~
/in/foo.cc:9:6: note: candidate: 'template<class T> void quicksort(T*, T*)'
9 | void quicksort(T* begin,T*end) {
| ^~~~~~~~~
/in/foo.cc:9:6: note: template argument deduction/substitution failed:
/in/foo.cc:18:14: note: mismatched types 'T*' and 'long long int'
18 | quicksort(begin,r+1);
| ~~~~~~~~~^~~~~~~~~~~