Concepts for C++0x
Jeremy G. Siek, Douglas Gregor, Ronald Garcia, Jeremiah James Willcock, Jaakko Järvi, Andrew Lumsdaine · 2005
3 Design rationale 4 3.1 Template compilation model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Specific language features in the design space . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.1 Named conformance vs. structural conformance . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 New templates vs. new template parameters . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.3 Pseudo-signatures vs. valid expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.4 Placeholder types vs. concept names as types . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.5 Specifying constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.6 Associated types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.7 Same-type constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.8 Integral-constant constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11