Elements of programming - Stepanov, Alexander A. (Addison-Wesley, 2009)