Using C++11 function instead Boost
Using C++11 unordered map and set insted Boost
Using C++11 range-based loop insted Boost
Using C++11 bind instead Boost