{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,21]],"date-time":"2025-05-21T06:12:26Z","timestamp":1747807946547},"publisher-location":"Berlin, Heidelberg","reference-count":42,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642288296"},{"type":"electronic","value":"9783642288302"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2012]]},"DOI":"10.1007\/978-3-642-28830-2_6","type":"book-chapter","created":{"date-parts":[[2012,4,24]],"date-time":"2012-04-24T21:36:49Z","timestamp":1335303409000},"page":"97-118","source":"Crossref","is-referenced-by-count":10,"title":["Design of Concept Libraries for C++"],"prefix":"10.1007","author":[{"given":"Andrew","family":"Sutton","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bjarne","family":"Stroustrup","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"6_CR1","unstructured":"Abrahams, D., Gurtovoy, A.: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. C++ In-Depth. Addison Wesley (2004)"},{"key":"6_CR2","volume-title":"Generic Programming and the STL: Using and Extending the C++ Standard Template Library","author":"M. Austern","year":"1998","unstructured":"Austern, M.: Generic Programming and the STL: Using and Extending the C++ Standard Template Library, 7th edn. Addison-Welsey Longman, Boston (1998)","edition":"7"},{"issue":"13","key":"6_CR3","doi-asserted-by":"publisher","first-page":"1273","DOI":"10.1002\/spe.564","volume":"33","author":"M. Austern","year":"2003","unstructured":"Austern, M., Stroustrup, B., Thorup, M., Wilkinson, J.: Untangling the Balancing and Searching of Balanced Binary Search Trees. Software: Practice and Experience\u00a033(13), 1273\u20131298 (2003)","journal-title":"Software: Practice and Experience"},{"key":"6_CR4","doi-asserted-by":"crossref","unstructured":"Bagge, A.H., David, V., Haveraaen, M.: The Axioms Strike Back: Testing with Concepts and Axioms in C++. In: 8th International Conference on Generative Programming and Component Engineering (GPCE 2009), Denver, Colorado, pp. 15\u201324 (2010)","DOI":"10.1145\/1621607.1621612"},{"key":"6_CR5","unstructured":"Becker, P.: Working Draft, Standard for the Programming Language C++. Tech. Rep. N2914, ISO\/IEC JTC 1, Information Technology Subcommittee SC 22, Programming Language C++ (2009)"},{"key":"6_CR6","doi-asserted-by":"crossref","unstructured":"Bernardy, J.P., Jansson, P., Zalewski, M., Schupp, S., Priesnitz, A.: A Comparison of C++ Concepts and Haskell Type Classes. In: Workshop on Generic Programming (WGP 2008), Victoria, Canada, pp. 37\u201348 (2008)","DOI":"10.1145\/1411318.1411324"},{"issue":"3-4","key":"6_CR7","doi-asserted-by":"publisher","first-page":"271","DOI":"10.1017\/S095679681000016X","volume":"20","author":"J.-P. Bernardy","year":"2010","unstructured":"Bernardy, J.-P., Jansson, P., Zalewski, M., Schupp, S.: Generic Programming with C++ Concepts and Haskell Type Classes\u2013A Comparison. Journal of Functional Programming\u00a020(3-4), 271\u2013302 (2010)","journal-title":"Journal of Functional Programming"},{"key":"6_CR8","doi-asserted-by":"crossref","unstructured":"Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the Future Safe for the Past: Adding Genericity to the Java Programming Language. In: 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 1998), Vancouver, Canada, pp. 183\u2013200 (1998)","DOI":"10.1145\/286942.286957"},{"key":"6_CR9","doi-asserted-by":"crossref","unstructured":"Davenport, J.H., Gianni, P.M., Trager, B.M.: Scratchpad\u2019s View of Algebra II: A Categorical View of Factorization. In: International Symposium on Symbolic and Algebraic Computation (ISSAC 1991), Bonn, Germany, pp. 32\u201338 (1991)","DOI":"10.1145\/120694.120699"},{"key":"6_CR10","unstructured":"Davenport, J.H., Sutor, R.S.: AXIOM: The Scientific Computation System. Springer (1992)"},{"key":"6_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"40","DOI":"10.1007\/3-540-52531-9_122","volume-title":"Design and Implementation of Symbolic Computation Systems","author":"J.H. Davenport","year":"1990","unstructured":"Davenport, J.H., Trager, B.M.: Scratchpad\u2019s View of Algebra I: Basic Commutative Algebra. In: Miola, A. (ed.) DISCO 1990. LNCS, vol.\u00a0429, pp. 40\u201354. Springer, Heidelberg (1990)"},{"key":"6_CR12","doi-asserted-by":"crossref","unstructured":"David, V.: Concepts as Syntactic Sugar. In: 9th International Working Conference on Source Code Analysis and Manipulation (SCAM 2009), Alberta, Canada, pp. 147\u2013156 (2009)","DOI":"10.1109\/SCAM.2009.26"},{"key":"6_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-39953-4_1","volume-title":"Generic Programming","author":"J.C. Dehnert","year":"2000","unstructured":"Dehnert, J.C., Stepanov, A.: Fundamentals of Generic Programming. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol.\u00a01766, pp. 1\u201311. Springer, Heidelberg (2000)"},{"key":"6_CR14","unstructured":"Dos Reis, G.: Personal Communication (October 2010)"},{"key":"6_CR15","doi-asserted-by":"crossref","unstructured":"Dos Reis, G., Stroustrup, B.: Specifying C++ Concepts. In: 33rd Symposium on Principles of Programming Languages (POPL 2006), Charleston, South Carolina, pp. 295\u2013308 (2006)","DOI":"10.1145\/1111037.1111064"},{"key":"6_CR16","unstructured":"Dos Reis, G., Stroustrup, B., Merideth, A.: Axioms: Semantics Aspects of C++ Concepts. Tech. Rep. N2887, ISO\/IEC JTC 1, Information Technology Subcommittee SC 22, Programming Language C++ (2009)"},{"key":"6_CR17","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley (1994)"},{"key":"6_CR18","doi-asserted-by":"publisher","first-page":"145","DOI":"10.1017\/S0956796806006198","volume":"17","author":"R. Garcia","year":"2007","unstructured":"Garcia, R., J\u00e4rvi, J., Lumsdaine, A., Siek, J., Willcock, J.: An Extended Comparative Study of Language Support for Generic Programming. Journal of Functional Programming\u00a017, 145\u2013205 (2007)","journal-title":"Journal of Functional Programming"},{"key":"6_CR19","unstructured":"Gregor, D.: ConceptGCC (2008), \n                  \n                    http:\/\/www.generic-programming.org\/software\/ConceptGCC\/"},{"key":"6_CR20","doi-asserted-by":"crossref","unstructured":"Gregor, D., J\u00e4rvi, J., Siek, J., Stroustrup, B., Dos Reis, G., Lumsdaine, A.: Concepts: Linguistic Support for Generic Programming in C++. In: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2006), Portland, Oregon, pp. 291\u2013310 (2006)","DOI":"10.1145\/1167515.1167499"},{"key":"6_CR21","unstructured":"Hewlett-Packard: Standard Template Library Programmer\u2019s Guide (1994), \n                  \n                    http:\/\/www.sgi.com\/tech\/stl\/index.html"},{"key":"6_CR22","unstructured":"International Organization for Standards: International Standard ISO\/IEC 14882. Programming Languages \u2014 C++ (2003)"},{"key":"6_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"228","DOI":"10.1007\/978-3-540-39815-8_14","volume-title":"Generative Programming and Component Engineering","author":"J. J\u00e4rvi","year":"2003","unstructured":"J\u00e4rvi, J., Willcock, J., Lumsdaine, A.: Concept-Controlled Polymorphism. In: Pfenning, F., Macko, M. (eds.) GPCE 2003. LNCS, vol.\u00a02830, pp. 228\u2013244. Springer, Heidelberg (2003)"},{"key":"6_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"230","DOI":"10.1007\/3-540-46425-5_15","volume-title":"Programming Languages and Systems","author":"M.P. Jones","year":"2000","unstructured":"Jones, M.P.: Type Classes with Functional Dependencies. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol.\u00a01782, pp. 230\u2013244. Springer, Heidelberg (2000)"},{"key":"6_CR25","doi-asserted-by":"crossref","unstructured":"Kennedy, A., Syme, D.: Design and Implementation of Generics for the .NET Common Language Runtime. In: ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI 2001), Snowbird, Utah, pp. 1\u201312 (2001)","DOI":"10.1145\/381694.378797"},{"key":"6_CR26","unstructured":"Meyer, B.: Eiffel: The Language. Prentice-Hall (1991)"},{"key":"6_CR27","doi-asserted-by":"crossref","unstructured":"Milner, R., Harper, R., MacQueen, D., Tofte, M.: The Definition of Standard ML - Revised. The MIT Press (1997)","DOI":"10.7551\/mitpress\/2319.001.0001"},{"issue":"7","key":"6_CR28","doi-asserted-by":"publisher","first-page":"623","DOI":"10.1002\/spe.4380240703","volume":"24","author":"D. Musser","year":"1994","unstructured":"Musser, D., Stepanov, A.: Algorithm-oriented Generic Libraries. Software: Practice and Experience\u00a024(7), 623\u2013642 (1994)","journal-title":"Software: Practice and Experience"},{"key":"6_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"123","DOI":"10.1007\/978-3-642-19440-5_8","volume-title":"Software Language Engineering","author":"P. Pirkelbauer","year":"2011","unstructured":"Pirkelbauer, P., Dechev, D., Stroustrup, B.: Support for the Evolution of C++ Generic Functions. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol.\u00a06563, pp. 123\u2013142. Springer, Heidelberg (2011)"},{"key":"6_CR30","unstructured":"Siek, J., Lee, L.-Q., Lumsdaine, A.: The Boost Graph Library: User Guide and Reference Manual. Addison-Wesley (2001)"},{"key":"6_CR31","unstructured":"Siek, J., Lumsdaine, A.: Concept Checking: Binding Parametric Polymorphism in C++. In: 1st Workshop on C++ Template Programming, Erfurt, Germany (2000)"},{"key":"6_CR32","doi-asserted-by":"crossref","unstructured":"Siek, J., Lumsdaine, A.: Essential Language Support for Generic Programming. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2005), Chicago, Illinois, pp. 73\u201384 (2005)","DOI":"10.1145\/1065010.1065021"},{"key":"6_CR33","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"405","DOI":"10.1007\/11561347_27","volume-title":"Generative Programming and Component Engineering","author":"J. Siek","year":"2005","unstructured":"Siek, J., Lumsdaine, A.: Language Requirements for Large-Scale Generic Libraries. In: Gl\u00fcck, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol.\u00a03676, pp. 405\u2013421. Springer, Heidelberg (2005)"},{"key":"6_CR34","volume-title":"Elements of Programming","author":"A. Stepanov","year":"2009","unstructured":"Stepanov, A., McJones, P.: Elements of Programming. Addison Wesley, Boston (2009)"},{"issue":"1","key":"6_CR35","first-page":"55","volume":"2","author":"B. Stroustrup","year":"1989","unstructured":"Stroustrup, B.: Parameterized Types for C++. Computing Systems\u00a02(1), 55\u201385 (1989)","journal-title":"Computing Systems"},{"key":"6_CR36","unstructured":"Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley (1994)"},{"key":"6_CR37","unstructured":"Stroustrup, B.: \u201dNew\u201d Value Terminology (2010), \n                  \n                    http:\/\/www2.research.att.com\/~bs\/terminology.pdf"},{"key":"6_CR38","unstructured":"Sutton, A.: Origin C++0x Libraries (2011), \n                  \n                    http:\/\/code.google.com\/p\/origin"},{"key":"6_CR39","doi-asserted-by":"crossref","unstructured":"Sutton, A., Holeman, R., Maletic, J.I.: Identification of Idiom Usage in C++ Generic Libraries. In: 18th International Conference on Program Comprehension (ICPC 2010), Braga, Portugal, pp. 160\u2013169 (2010)","DOI":"10.1109\/ICPC.2010.37"},{"key":"6_CR40","doi-asserted-by":"crossref","unstructured":"Sutton, A., Maletic, J.I.: Automatically Identifying C++0x Concepts in Function Templates. In: 24th International Conference on Software Maintenance (ICSM 2004), Beijing, China, pp. 57\u201366 (2008)","DOI":"10.1109\/ICSM.2008.4658054"},{"key":"6_CR41","doi-asserted-by":"crossref","unstructured":"Torgersen, M., Hansen, C.P., Ernst, E., von der Ah\u00e9, P., Bracha, G., Gafter, N.: Adding Wildcards to the Java Programming Language. In: ACM Symposium on Applied Computing, SAC 2004, Nicosia, Cyprus, pp. 1289\u20131296 (2004)","DOI":"10.1145\/967900.968162"},{"issue":"5","key":"6_CR42","first-page":"26","volume":"7","author":"T. Veldhuizen","year":"1995","unstructured":"Veldhuizen, T.: Expression Templates. C++ Report\u00a07(5), 26\u201331 (1995)","journal-title":"C++ Report"}],"container-title":["Lecture Notes in Computer Science","Software Language Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-28830-2_6.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,5,4]],"date-time":"2021-05-04T11:12:52Z","timestamp":1620126772000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-28830-2_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012]]},"ISBN":["9783642288296","9783642288302"],"references-count":42,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-28830-2_6","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2012]]}}}