{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,2]],"date-time":"2025-03-02T05:45:58Z","timestamp":1740894358700,"version":"3.38.0"},"publisher-location":"Berlin, Heidelberg","reference-count":43,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540201021"},{"type":"electronic","value":"9783540398158"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2003]]},"DOI":"10.1007\/978-3-540-39815-8_14","type":"book-chapter","created":{"date-parts":[[2011,1,7]],"date-time":"2011-01-07T14:49:51Z","timestamp":1294411791000},"page":"228-244","source":"Crossref","is-referenced-by-count":12,"title":["Concept-Controlled Polymorphism"],"prefix":"10.1007","author":[{"given":"Jaakko","family":"J\u00e4rvi","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jeremiah","family":"Willcock","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrew","family":"Lumsdaine","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"14_CR1","unstructured":"Abrahams, D.: Qualified namespaces. Technical Report N1408=02-0066, ISO Programming Language C++ Project (November 2002), http:\/\/anubis.dkuug.dk\/jtc1\/sc22\/wg21\/docs\/papers\/2002\/n1408.html"},{"key":"14_CR2","unstructured":"Abrahams, D., Siek, J.: The Boost Operators library (2002), http:\/\/www.boost.org"},{"key":"14_CR3","volume-title":"Modern C++ Design: Generic Programming and Design Patterns Applied","author":"A. Alexandrescu","year":"2001","unstructured":"Alexandrescu, A.: Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley, Reading (2001)"},{"key":"14_CR4","series-title":"Professional computing series","volume-title":"Generic Programming and the STL","author":"M.H. Austern","year":"1999","unstructured":"Austern, M.H.: Generic Programming and the STL. Professional computing series. Addison- Wesley, Reading (1999)"},{"key":"14_CR5","volume-title":"Scientific and engineering C++","author":"J. Barton","year":"1994","unstructured":"Barton, J., Nackman, L.: Scientific and engineering C++. Addison-Wesley, Reading (1994)"},{"issue":"8","key":"14_CR6","doi-asserted-by":"publisher","first-page":"863","DOI":"10.1002\/spe.4380250803","volume":"25","author":"G. Baumgartner","year":"1995","unstructured":"Baumgartner, G., Russo, V.F.: Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software\u2013Practice and Experience\u00a025(8), 863\u2013889 (1995)","journal-title":"Software\u2013Practice and Experience"},{"key":"14_CR7","unstructured":"Coplien, J.O.: Curiously recurring template patterns. C++ Report, 24\u201327 (February1995)"},{"key":"14_CR8","volume-title":"Generative Programming: Methods, Techniques and Applications","author":"K. Czarnecki","year":"2000","unstructured":"Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Techniques and Applications. Addison-Wesley, Reading (2000)"},{"key":"14_CR9","unstructured":"Dimov, P., Hinnant, H., Abrahams, D.: The forwarding problem: Arguments. Technical Report N1385=02-0043, ISO Programming Language C++ Project (September 2002), http:\/\/anubis.dkuug.dk\/jtc1\/sc22\/wg21\/docs\/papers\/2002\/n1385.html"},{"key":"14_CR10","unstructured":"Ditchfield, G.: Contextual Polymorphism. PhD thesis, University of Waterloo (1994)"},{"issue":"3","key":"14_CR11","doi-asserted-by":"crossref","first-page":"263","DOI":"10.1063\/1.4822555","volume":"11","author":"G. Furnish","year":"1997","unstructured":"Furnish, G.: Disambiguated glommable expression templates. Computers in Physics\u00a011(3), 263\u2013269 (1997)","journal-title":"Computers in Physics"},{"issue":"3","key":"14_CR12","doi-asserted-by":"publisher","first-page":"258","DOI":"10.1063\/1.168674","volume":"12","author":"G. Furnish","year":"1998","unstructured":"Furnish, G.: Container-free numerical algorithms in C++. Computers in Physics\u00a012(3), 258\u2013266 (1998)","journal-title":"Computers in Physics"},{"key":"14_CR13","unstructured":"Furnish, G.: Disambiguated glommable expression templates revisited. C++ Report (May 2000)"},{"key":"14_CR14","unstructured":"Gurtovoy, A., Abrahams, D.: The Boost C++ metaprogramming library (2002), http:\/\/www.boost.org\/libs\/mpl"},{"key":"14_CR15","doi-asserted-by":"publisher","first-page":"259","DOI":"10.1002\/spe.504","volume":"33","author":"J. J\u00e4rvi","year":"2003","unstructured":"J\u00e4rvi, J., Powell, G., Lumsdaine, A.: The Lambda Library: unnamed functions in C++. Software \u2013 Practice and Experience\u00a033, 259\u2013291 (2003)","journal-title":"Software \u2013 Practice and Experience"},{"issue":"6","key":"14_CR16","first-page":"25","volume":"21","author":"J. J\u00e4rvi","year":"2003","unstructured":"J\u00e4rvi, J., Willcock, J., Hinnant, H., Lumsdaine, A.: Function overloading based on arbitrary properties of types. C\/C++ Users Journal\u00a021(6), 25\u201332 (2003)","journal-title":"C\/C++ Users Journal"},{"key":"14_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"218","DOI":"10.1007\/3-540-39953-4_17","volume-title":"Generic Programming","author":"J.A. Crotinger","year":"2000","unstructured":"Crotinger, J.A., Cummings, J., Haney, S.W., Humphrey, W.F., Karmesin, S.R., Reynders, J., Smith, S., Williams, T.J.: Generic programming in POOMA and PETE. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol.\u00a01766, p. 218. Springer, Heidelberg (2000)"},{"key":"14_CR18","doi-asserted-by":"crossref","unstructured":"Jeffery, D., Henderson, F., Somogyi, Z.: Type classes in Mercury. In: Proceedings of the 23rd Australasian Computer Science Conference, January\/February 2000, pp. 128\u2013137 (2000)","DOI":"10.1109\/ACSC.2000.824391"},{"key":"14_CR19","volume-title":"Documentation distributed with Gofer source","author":"M.P. Jones","year":"1992","unstructured":"Jones, M.P.: Gofer. In: Documentation distributed with Gofer source. University of Oxford, Oxford (1992)"},{"key":"14_CR20","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"287","DOI":"10.1007\/3-540-55253-7_17","volume-title":"ESOP 1992","author":"M.P. Jones","year":"1992","unstructured":"Jones, M.P.: A theory of qualified types. In: Krieg-Br\u00fcckner, B. (ed.) ESOP 1992. LNCS, vol.\u00a0582, pp. 287\u2013306. Springer, Heidelberg (1992)"},{"key":"14_CR21","doi-asserted-by":"publisher","first-page":"52","DOI":"10.1145\/165180.165190","volume-title":"FPCA 1993: Conference on Functional Programming and Computer Architecture","author":"M.P. Jones","year":"1993","unstructured":"Jones, M.P.: A system of constructor classes: overloading and implicit higher -order polymorphism. In: FPCA 1993: Conference on Functional Programming and Computer Architecture, pp. 52\u201361. ACM Press, New York (1993)"},{"key":"14_CR22","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":"14_CR23","unstructured":"Jones, S.P., Hughes, J., et al.: Haskell 98: A Non-strict, Purely Functional Language (February 1999), http:\/\/www.haskell.org\/onlinereport\/"},{"key":"14_CR24","unstructured":"Jones, S.P., Jones, M., Meijer, E.: Type classes: an exploration of the design space (June 1997)"},{"key":"14_CR25","unstructured":"Maddock, J.: The Boost static assertion library (2000), http:\/\/www.boost.org\/libs\/static_assert"},{"key":"14_CR26","unstructured":"Maddock, J., Cleary, S., et al.: The Boost type- traits library (2002), http:\/\/www.boost.org\/libs\/type_traits"},{"key":"14_CR27","unstructured":"McNamara, B., Smaragdakis, Y.: Static interfaces in C++. In: 1st Workshop on C++ Template Programming (October 2000)"},{"key":"14_CR28","unstructured":"Musser, D.R., Stepanov, A.: Generic programming. In: ISSAC: Proceedings of the ACM SIGSAM International Symposium on Symbolic and Algebraic Computation (1988)"},{"key":"14_CR29","unstructured":"Scheyen, P., Yu, S., Zhang, M., Zhuang, Q.: Introducing KINDs to C++. Technical Report 366, University of Western Ontario, London, Ontario (May 1993), http:\/\/www.csd.uwo.ca\/~pete\/kc.ps"},{"key":"14_CR30","unstructured":"Siek, J.: Boost Concept Check Library. Boost (2000), http:\/\/www.boost.org\/libs\/-concept_check\/"},{"key":"14_CR31","unstructured":"Siek, J., Lumsdaine, A.: Concept checking: Binding parametric polymorphism in C++. In: 1st Workshop on C++ Template Programming (October 2000)"},{"key":"14_CR32","volume-title":"The Boost Graph Library User Guide and Reference Manual","author":"J.G. Siek","year":"2001","unstructured":"Siek, J.G., Lee, L.-Q., Lumsdaine, A.: The Boost Graph Library User Guide and Reference Manual. Addison Wesley Professional, London (2001)"},{"key":"14_CR33","doi-asserted-by":"crossref","unstructured":"Siek, J.G., Lumsdaine, A.: A modern framework for portable high performance numerical linear algebra. In: Modern Software Tools for Scientific Computing, Birkh\u00e4user (1999)","DOI":"10.1007\/978-3-642-57172-5_1"},{"key":"14_CR34","unstructured":"Smith, R.: A default- constructible traits. Thread of Usenet articles in comp. sci. lang. c++.moderated (January 2002)"},{"key":"14_CR35","unstructured":"Strachey, C.: Fundamental concepts in programming languages. In: Lecture Notes for the International Summer School in Computer Programming (August 1967); As cited in [41]"},{"key":"14_CR36","unstructured":"Unruh, E.: Prime number computation. Distributed in the ANSI X3J16-94-0075\/ISO WG21- 426 meeting (1994)"},{"key":"14_CR37","volume-title":"C++ Templates: The Complete Guide","author":"D. Vandevoorde","year":"2002","unstructured":"Vandevoorde, D., Josuttis, N.M.: C++ Templates: The Complete Guide. Addison-Wesley, Reading (2002)"},{"issue":"5","key":"14_CR38","first-page":"26","volume":"7","author":"T.L. Veldhuizen","year":"1995","unstructured":"Veldhuizen, T.L.: Expression templates. C++ Report\u00a07(5), 26\u201331 (1995); reprinted in C++ Gems, ed. Stanley Lippman","journal-title":"C++ Report"},{"issue":"4","key":"14_CR39","first-page":"36","volume":"7","author":"T.L. Veldhuizen","year":"1995","unstructured":"Veldhuizen, T.L.: Using C++ template metaprograms. C++ Report\u00a07(4), 36\u201343 (1995); reprinted in C++ Gems, ed. Stanley Lippman","journal-title":"C++ Report"},{"key":"14_CR40","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"223","DOI":"10.1007\/3-540-49372-7_24","volume-title":"Computing in Object-Oriented Parallel Environments","author":"T.L. Veldhuizen","year":"1998","unstructured":"Veldhuizen, T.L.: Arrays in Blitz++. In: Caromel, D., Oldehoeft, R.R., Tholburn, M. (eds.) ISCOPE 1998. LNCS, vol.\u00a01505, pp. 223\u2013230. Springer, Heidelberg (1998)"},{"key":"14_CR41","first-page":"60","volume-title":"Symposium on Principles of Programming Languages","author":"P. Wadler","year":"1989","unstructured":"Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad-hoc. In: Symposium on Principles of Programming Languages, January 1989, pp. 60\u201376. ACM, New York (1989)"},{"key":"14_CR42","unstructured":"Walter, J., Koch, M.: The Boost uBLAS Library. Boost (2002), http:\/\/www.boost.org\/libs\/numeric"},{"key":"14_CR43","unstructured":"Wenzel, M.: Using axiomatic type classes in Isabelle (manual) (1995), http:\/\/www.cl.cam.acuk\/Research\/HVG\/Isabelle\/docs.html"}],"container-title":["Lecture Notes in Computer Science","Generative Programming and Component Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-39815-8_14","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,1]],"date-time":"2025-03-01T14:23:00Z","timestamp":1740838980000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-39815-8_14"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003]]},"ISBN":["9783540201021","9783540398158"],"references-count":43,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-39815-8_14","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2003]]}}}