tyrion42 | Salut à tous,
j'ai un problème avec pointer_to_unary_function :
Avec VC7, pas de problème mais avec gcc 3.3, j'ai une erreur à la compilation :
Code :
- toto.cpp:21: error: invalid initialization of non-const reference of type '
- std::pointer_to_unary_function<int, int>&' from a temporary of type '
- std::pointer_to_unary_function<int, int>'
- /usr/include/c++/3.3/bits/stl_algo.h:1666: error: in passing argument 3 of `
- void std::random_shuffle(_RandomAccessIter, _RandomAccessIter,
- _RandomNumberGenerator& ) [with _RandomAccessIter =
- __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >,
- _RandomNumberGenerator = std::pointer_to_unary_function<int, int>]'
|
j'avoue ne pas comprendre, pourtant ça doit être gros comme une maison mais avec le nez dans le guidon, pas facile
Code :
- #include <vector>
- #include <functional>
- #include <algorithm>
- int Rand( int a ) {
- return a; // juste pour l'exemple
- }
- int main() {
- std::vector<int> a;
- a.push_back( 1 );
- a.push_back( 2 );
- a.push_back( 3 );
- a.push_back( 4 );
- a.push_back( 5 );
- std::random_shuffle(
- a.begin(),
- a.end(),
- std::pointer_to_unary_function<int, int>(Rand)
- );
- return 0;
- }
|
|