#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;
 
class SomeClass{
public:
    SomeClass(size_t value = 0) :
        value(value)
    {
    }
    bool operator <(const SomeClass &right)const{
        return value < right.value;
    }
    size_t &data(){
         return value;
    }
    private:
    	size_t value;

};
 
 
int main() {
    vector< SomeClass > arr = {3,1,2};
    std::sort( begin(arr), end(arr) );
    for(auto &elem: arr) {
       cout<<elem.data()<<" ";
    }
    cout<<endl;
    std::sort( begin(arr), end(arr), [](auto left, auto right){left=1;return !(left<right);} );
    for(auto &elem: arr) {
       cout<<elem.data()<<" ";
    }
    return 0;
}