| 685 | // random_shuffle --------------------------------- |
| 686 | |
| 687 | struct random_shuffle { |
| 688 | |
| 689 | template <class Args> |
| 690 | struct sig { |
| 691 | typedef void type; |
| 692 | }; |
| 693 | |
| 694 | template <class A> |
| 695 | void |
| 696 | operator()(A a, A b) const |
| 697 | { ::std::random_shuffle(a, b); } |
| 698 | |
| 699 | template <class A, class C> |
| 700 | void |
| 701 | operator()(A a, A b, const C& c) const |
| 702 | { ::std::random_shuffle(a, b, c); } |
| 703 | |
| 704 | }; |
| 705 | |
| 706 | |
| 707 | // partition --------------------------------- |
no outgoing calls