alexander stepanov algorithm andrei alexandrescu array associative array bell labs binary function binary relation bjarne stroustrup bool code bloat compiler coroutine david musser defense industry deque dynamic array function object general electric generic programming hash function hash table header file herb sutter hewlett-packard indentation internet iterator linked list meng lee polymorphism in object-oriented programming random access scott meyers self-balancing binary search tree set silicon graphics strict weak ordering symmetric difference type polymorphism unary function unordered map von neumann architecture