This talk describes the design and implementation of generic parallel algorithms in Intel(R) Threading Building Blocks (TBB). Design choices impact aspects of expressiveness, convenience, and performance of parallel algorithms. For example, TBB focuses on recursively divisible ranges instead of STL-style iterators for binding algorithms to containers. The talk will explore this choice and others in TBB, and discuss how they impact said aspects. This talk also touches on why, for high-performance generic algorithms, C++ is the language of choice, how C++ 200x makes it better, and how C++ could be improved further.