{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,27]],"date-time":"2026-02-27T03:46:08Z","timestamp":1772163968644,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":54,"publisher":"ACM","license":[{"start":{"date-parts":[[2009,10,25]],"date-time":"2009-10-25T00:00:00Z","timestamp":1256428800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2009,10,25]]},"DOI":"10.1145\/1640089.1640121","type":"proceedings-article","created":{"date-parts":[[2009,10,27]],"date-time":"2009-10-27T09:27:28Z","timestamp":1256635648000},"page":"425-444","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Minimizing dependencies within generic classes for faster and smaller programs"],"prefix":"10.1145","author":[{"given":"Dan","family":"Tsafrir","sequence":"first","affiliation":[{"name":"IBM T.J. Watson Research Center, Yorktown Heights, NY, USA"}]},{"given":"Robert W.","family":"Wisniewski","sequence":"additional","affiliation":[{"name":"IBM T.J. Watson Research Center, Yorktown Heights, NY, USA"}]},{"given":"David F.","family":"Bacon","sequence":"additional","affiliation":[{"name":"IBM T.J. Watson Research Center, Yorktown Heights, NY, USA"}]},{"given":"Bjarne","family":"Stroustrup","sequence":"additional","affiliation":[{"name":"Texas A&amp;M University, College Station, TX, USA"}]}],"member":"320","published-online":{"date-parts":[[2009,10,25]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353175"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2005.9"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236371"},{"key":"e_1_3_2_1_4_1","volume-title":"Symp. on Library-Centric Software Design (LCSD)","author":"Bourdev L.","year":"2006","unstructured":"L. Bourdev and J. Jarvi , \" Efficient run-time dispatching in generic programming with minimal code bloat \". In Symp. on Library-Centric Software Design (LCSD) , Oct 2006 . L. Bourdev and J. Jarvi, \"Efficient run-time dispatching in generic programming with minimal code bloat\". In Symp. on Library-Centric Software Design (LCSD), Oct 2006."},{"key":"e_1_3_2_1_5_1","unstructured":"W. Bright \"D programming language\". http:\/\/www.digitalmars.com\/d  W. Bright \"D programming language\". http:\/\/www.digitalmars.com\/d"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.177973"},{"key":"e_1_3_2_1_7_1","first-page":"313","article-title":"Quantifying behavioral differences between C and C++ programs","volume":"2","author":"Calder B.","year":"1994","unstructured":"B. Calder , D. Grunwald , and B. Zorn , \" Quantifying behavioral differences between C and C++ programs \". J. Prog. Lang. 2 , pp. 313 -- 351 , 1994 . B. Calder, D. Grunwald, and B. Zorn, \"Quantifying behavioral differences between C and C++ programs\". J. Prog. Lang. 2, pp. 313--351, 1994.","journal-title":"J. Prog. Lang."},{"key":"e_1_3_2_1_8_1","volume-title":"Designing and Coding Reusable C++","author":"Carroll M. D.","year":"1995","unstructured":"M. D. Carroll and M. A. Ellis , Designing and Coding Reusable C++ . Addison-Wesley , 1995 . M. D. Carroll and M. A. Ellis, Designing and Coding Reusable C++. Addison-Wesley, 1995."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040306"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/646380.689537"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1017753.1017800"},{"key":"e_1_3_2_1_12_1","volume-title":"Introduction to algorithms","author":"Cormen T. H.","year":"2001","unstructured":"T. H. Cormen , C. E. Leiserson , R. L. Rivest , and C. Stein , Introduction to algorithms . MIT Press , 2 nd ed., 2001 . T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to algorithms. MIT Press, 2nd ed., 2001.","edition":"2"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/646156.679839"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/383721.383732"},{"key":"e_1_3_2_1_15_1","unstructured":"J. J. Dongarra H. W. Meuer H. D. Simon and E. Strohmaier \"Top500 supercomputer sites\". http:\/\/www.top500.org\/  J. J. Dongarra H. W. Meuer H. D. Simon and E. Strohmaier \"Top500 supercomputer sites\". http:\/\/www.top500.org\/"},{"key":"e_1_3_2_1_16_1","first-page":"1151","article-title":"GangSim: A simulator for grid scheduling studies","author":"Dumitrescu C. L.","year":"2005","unstructured":"C. L. Dumitrescu and I. Foster , \" GangSim: A simulator for grid scheduling studies \". In 5th IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid) , pp. 1151 -- 1158 Vol. 2, 2005 . C. L. Dumitrescu and I. Foster, \"GangSim: A simulator for grid scheduling studies\". In 5th IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid), pp. 1151--1158 Vol. 2, 2005.","journal-title":"5th IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid)"},{"key":"e_1_3_2_1_17_1","first-page":"14","volume-title":"6th USENIX Conf. on Object-Oriented Technologies (COOTS)","author":"Duret-Lutz A.","year":"2001","unstructured":"A. Duret-Lutz , T. Geraud , and A. Demaille , \" Design patterns for generic programming in C++ \". In 6th USENIX Conf. on Object-Oriented Technologies (COOTS) , p. 14 , 2001 . A. Duret-Lutz, T. Geraud, and A. Demaille, \"Design patterns for generic programming in C++\". In 6th USENIX Conf. on Object-Oriented Technologies (COOTS), p. 14, 2001."},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781162"},{"key":"e_1_3_2_1_19_1","volume-title":"An Introduction to Design Patterns in C++ with Qt 4","author":"Ezust A.","year":"2006","unstructured":"A. Ezust and P. Ezust , An Introduction to Design Patterns in C++ with Qt 4 . Prentice Hall , 2006 . A. Ezust and P. Ezust, An Introduction to Design Patterns in C++ with Qt 4. Prentice Hall, 2006."},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2005.18"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2003.1231190"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/143365.143493"},{"key":"e_1_3_2_1_23_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1995","unstructured":"E. Gamma , R. Helm , R. Johnson , and J. Vlissides , Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley , 1995 . E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995."},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949317"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006198"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-39425-9_37"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2004.03.009"},{"issue":"2","key":"e_1_3_2_1_28_1","article-title":"The Intel Pentium M processor: Microarchitecture and performance","volume":"7","author":"Gochman S.","year":"2003","unstructured":"S. Gochman , \" The Intel Pentium M processor: Microarchitecture and performance \". Intel Technology Journal 7 ( 2 ), May 2003 . S. Gochman et al., \"The Intel Pentium M processor: Microarchitecture and performance\". Intel Technology Journal 7(2), May 2003.","journal-title":"Intel Technology Journal"},{"issue":"1","key":"e_1_3_2_1_29_1","first-page":"34","article-title":"How to reduce code bloat from STL containers","volume":"9","author":"Hansen M.","year":"1997","unstructured":"M. Hansen , \" How to reduce code bloat from STL containers \". C++ Report 9 ( 1 ), pp. 34 -- 41 , Jan 1997 . M. Hansen, \"How to reduce code bloat from STL containers\". C++ Report 9(1), pp. 34--41, Jan 1997.","journal-title":"C++ Report"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.3"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1362622.1362640"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353191"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346293"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01019005"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/332242.334001"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/378795.378797"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250715"},{"key":"e_1_3_2_1_38_1","volume-title":"Jul","author":"Klarer R.","year":"2009","unstructured":"R. Klarer , B. Stroustrup , D. Tsafrir , and M. Wong , \" SCARY iterator assignment and initialization\". ISO C++ standards committee paper N2913=09-0103 , Jul 2009 . Frankfurt , Germany . http:\/\/www.openstd.org\/jtc1\/sc22\/wg21\/docs\/papers\/2009\/n2913.pdf R. Klarer, B. Stroustrup, D. Tsafrir, and M. Wong, \"SCARY iterator assignment and initialization\". ISO C++ standards committee paper N2913=09-0103, Jul 2009. Frankfurt, Germany. http:\/\/www.openstd.org\/jtc1\/sc22\/wg21\/docs\/papers\/2009\/n2913.pdf"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134010"},{"key":"e_1_3_2_1_40_1","first-page":"138","article-title":"Scheduling distributed applications: the SimGrid simulation framework","author":"Legrand A.","year":"2003","unstructured":"A. Legrand , L. Marchal , and H. Casanova , \" Scheduling distributed applications: the SimGrid simulation framework \". In IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid) , p. 138 , 2003 . A. Legrand, L. Marchal, and H. Casanova, \"Scheduling distributed applications: the SimGrid simulation framework\". In IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid), p. 138, 2003.","journal-title":"IEEE Int'l Symp. on Cluster Comput.&amp;the Grid (CCGrid)"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.932708"},{"key":"e_1_3_2_1_42_1","unstructured":"\"Parallel Workloads Archive\". http:\/\/www.cs.huji.ac.il\/labs\/parallel\/workload  \"Parallel Workloads Archive\". http:\/\/www.cs.huji.ac.il\/labs\/parallel\/workload"},{"key":"e_1_3_2_1_43_1","unstructured":"\"Grid Workloads Archive\". http:\/\/gwa.ewi.tudelft.nl  \"Grid Workloads Archive\". http:\/\/gwa.ewi.tudelft.nl"},{"key":"e_1_3_2_1_44_1","unstructured":"\"Proc(5): process info pseudo-filesystem - Linux man page\". http:\/\/linux.die.net\/man\/5\/proc (Acceded Mar 2009).  \"Proc(5): process info pseudo-filesystem - Linux man page\". http:\/\/linux.die.net\/man\/5\/proc (Acceded Mar 2009)."},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/305138.305213"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2008.152"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2008.09.009"},{"key":"e_1_3_2_1_48_1","volume-title":"Byte","author":"Stepanov A.","year":"1995","unstructured":"A. Stepanov , \"The standard template library: how do you build an algorithm that is both generic and efficient? \". Byte 10, Oct 1995 . A. Stepanov, \"The standard template library: how do you build an algorithm that is both generic and efficient?\". Byte 10, Oct 1995."},{"key":"e_1_3_2_1_49_1","volume-title":"The C++ Programming Language","author":"Stroustrup B.","year":"1997","unstructured":"B. Stroustrup , The C++ Programming Language . Addison-Wesley , 3 rd ed., 1997 . B. Stroustrup, The C++ Programming Language. Addison-Wesley, 3rd ed., 1997.","edition":"3"},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2007.70606"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.5555\/646893.709567"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1159876.1159877"},{"key":"e_1_3_2_1_53_1","unstructured":"Wikibooks \"C++ programming\/code\/design patterns\". http:\/\/en.wikibooks.org\/wiki\/C++ Programming\/Code\/Design Patterns.  Wikibooks \"C++ programming\/code\/design patterns\". http:\/\/en.wikibooks.org\/wiki\/C++ Programming\/Code\/Design Patterns."},{"key":"e_1_3_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134012"}],"event":{"name":"OOPSLA09: ACM SIGPLAN Object Oriented Programming Systems and Applications Conference","location":"Orlando Florida USA","acronym":"OOPSLA09","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1640089.1640121","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1640089.1640121","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:17:56Z","timestamp":1750234676000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1640089.1640121"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,10,25]]},"references-count":54,"alternative-id":["10.1145\/1640089.1640121","10.1145\/1640089"],"URL":"https:\/\/doi.org\/10.1145\/1640089.1640121","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/1639949.1640121","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2009,10,25]]},"assertion":[{"value":"2009-10-25","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}