written in a quite portable way, and should build fine everywhere provided there is C++11 capable compiler available.