Abstract
By 2006, C++ had been in widespread industrial use for 20 years. It contained parts that had survived unchanged since introduced into C in the early 1970s as well as features that were novel in the early 2000s. From 2006 to 2020, the C++ developer community grew from about 3 million to about 4.5 million. It was a period where new programming models emerged, hardware architectures evolved, new application domains gained massive importance, and quite a few well-financed and professionally marketed languages fought for dominance. How did C++ -- an older language without serious commercial backing -- manage to thrive in the face of all that?
This paper focuses on the major changes to the ISO C++ standard for the 2011, 2014, 2017, and 2020 revisions. The standard library is about 3/4 of the C++20 standard, but this paper's primary focus is on language features and the programming techniques they support.
The paper contains long lists of features documenting the growth of C++. Significant technical points are discussed and illustrated with short code fragments. In addition, it presents some failed proposals and the discussions that led to their failure. It offers a perspective on the bewildering flow of facts and features across the years. The emphasis is on the ideas, people, and processes that shaped the language.
Themes include efforts to preserve the essence of C++ through evolutionary changes, to simplify its use, to improve support for generic programming, to better support compile-time programming, to extend support for concurrency and parallel programming, and to maintain stable support for decades' old code.
The ISO C++ standard evolves through a consensus process. Inevitably, there is competition among proposals and clashes (usually polite ones) over direction, design philosophies, and principles. The committee is now larger and more active than ever, with as many as 250 people turning up to week-long meetings three times a year and many more taking part electronically. We try (not always successfully) to mitigate the effects of design by committee, bureaucratic paralysis, and excessive enthusiasm for a variety of language fashions.
Specific language-technical topics include the memory model, concurrency and parallelism, compile-time computation, move-semantics, exceptions, lambda expressions, and modules. Designing a mechanism for specifying a template's requirements on its arguments that is sufficiently flexible and precise yet doesn't impose run-time costs turned out to be hard. The repeated attempts to design ``concepts'' to do that have their roots back in the 1980s and touch upon many key design issues for C++ and for generic programming.
The description is based on personal participation in the key events and design decisions, backed by the thousands of papers and hundreds of meeting minutes in the ISO C++ standards committee's archives.
- David Abrahams, Rani Sharoni, and Doug Gregor. 2010. Allowing Move Constructors to Throw (Rev. 1). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3050. 12 March 2010. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2010/n3050.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- ADAS Wikipedia 2020. ADAS: Advanced driver-assistance systems. https://en.wikipedia.org/wiki/Advanced_driverassistance_systems (also at Internet Archive 9 May 2019 04:16:15 ).Google Scholar
- James Adcock. 1990. Request for Consideration – Overloadable Unary operator.(). 8 Oct. 1990. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/1990/WG21%201990/X3J16_90%20WG21%20Request%20for%20Consideration%20-%20Overloadable%20Unary%20operator.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrei Alexandrescu, Hans Boehm, Kevlin Henney, Doug Lea, and Bill Pugh. 2004. Memory model for multithreaded C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1680. 10 Sept. 2004. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2004/n1680.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Matthew Austern. 2001. A Proposal to Add Hashtables to the Standard Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1326. 17 Oct. 2001. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2001/n1326.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Autosar 2020. AUTOSAR: The standardized software framework for intelligent mobility (website). https://www.autosar.org/ (also at Internet Archive 23 Aug. 2019 18:35:20 ). AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development partnership of vehicle manufacturers, suppliers, service providers and companies from the automotive electronics, semiconductor and software industry.Google Scholar
- Autosar Wikipedia 2020. AUTOSAR (AUTomotive Open System ARchitecture). https://en.wikipedia.org/wiki/AUTOSAR (also at Internet Archive 7 Aug. 2019 19:39:43 ).Google Scholar
- Lewis Baker. 2019. Coroutines TS Simplifications. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1477R1. 12 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1477r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- D. W. Barron, J. N. Buxton, D. F. Hartley, E. Nixon, and C. Strachey. 1963. The Main Features of CPL. The Computer Journal 6, 2 (Aug.), 134–143. 0010-4620 Google Scholar
Cross Ref
- JF Bastien. 2018. Signed Integers are Two’s Complement. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0907R0. 9 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0907r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mark Batty, Mike Dodds, and Alexey Gotsman. 2013. Library Abstraction for C/C++ Concurrency. In Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Rome, Italy, Jan.) (POPL ’13). Association for Computing Machinery, New York, NY, USA, 235–248. 978-1450318327 Google Scholar
Digital Library
- Mark Batty, Kayvan Memarian, Scott Owens, Susmit Sarkar, and Peter Sewell. 2012. Clarifying and Compiling C/C++ Concurrency: From C++11 to POWER. In Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Philadelphia, PA, USA, Jan.) (POPL ’12). Association for Computing Machinery, New York, NY, USA, 509–520. 978-1450310833 Google Scholar
Digital Library
- M. Batty, S. Owens, S. Sarkar, P. Sewell, and T. Weber. 2010. Mathematizing C++ Concurrency: The Post-Rapperswil Model. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3132. 23 Aug. 2010. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2010/n3132.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mark Batty, Scott Owens, Susmit Sarkar, Peter Sewell, and Tjark Weber. 2011. Mathematizing C++ Concurrency. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Austin, Texas, USA, Jan.) ( POPL ’11). Association for Computing Machinery, New York, NY, USA, 55–66. 978-1450304900 Google Scholar
Digital Library
- Pete Becker. 2004. A Multi-threading Library for Standard C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1682. 10 Sept. 2004. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2004/n1682.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Pete Becker (Ed.). 2009. Working Draft, Standard for Programming Language C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2914. 2 June 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2009/n2914.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Pete Becker (Ed.). 2011. ISO/IEC 14882:2011: Information Technology — Programming languages — C++. ISO (International Organization for Standardization), Geneva, Switzerland (Sept.). 1338 book pages. https://www.iso.org/standard/50372. html Status: withdrawn.Google Scholar
- Joshua Berne. 2019. “Axiom” is a False Friend. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1672R0. 16 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1672r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Joshua Berne, Nathan Burgers, Hyman Rosen, and John Lakos. 2018. Contract Checking in C++: A (long-term) Road Map. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1332R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2018/p1332r0.txt (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Joshua Berne and John Lakos. 2018a. Assigning Concrete Semantics to Contract-Checking Levels at Compile Time. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1333R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p1333r0.txt (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Joshua Berne and John Lakos. 2018b. Specifying Concrete Semantics Directly in Contract-Checking Statements. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1334R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p1334r0.txt (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Joshua Berne and John Lakos. 2019. Contracts That Work. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1429R2. 16 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1429r2.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, and Dawson Engler. 2010. A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World. Commun. ACM 53, 2 (Feb.), 66–75. 0001-0782 Google Scholar
Digital Library
- Peter Bindels, Ben Craig, Steve Downey, Rene Rivera, Tom Honermann, Corentin Jabot, and Stephen Kelly. 2018. Concerns about module toolability. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1427R0. 20 Nov. 2018. http: //www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1427r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Hans Boehm and Michael Spertus. 2005. Transparent Garbage Collection for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1833. 24 June 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1833.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Hans-J. Boehm, Mike Spertus, and Clark Nelson. 2008. Minimal Support for Garbage Collection and Reachability-Based Leak Detection (revised). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2586. 16 March 2008. http: //www.open- std.org/jtc1/sc22/wg21/docs/papers/2008/n2586.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Vicente Botet and JF Bastien. 2018. std::expected. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0323R6. 2 April 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0323r6.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lubomir Bourdev and Jaakko Järvi. 2011. Efficient Run-Time Dispatching in Generic Programming with Minimal Code Bloat. Science of Computer Programming 76, 4 (April), 243–257. Google Scholar
Digital Library
- Walter E. Brown, Mark Fischler, Jim Kowalkowski, and Marc Paterno. 2006. Random Number Generation in C++0X: A Comprehensive Proposal. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1932. 23 Feb. 2006. http: //www.open- std.org/jtc1/sc22/wg21/docs/papers/2006/n1932.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Build2 2014–2020. Build2, an open source, cross-platform build toolchain for developing and packaging C and C++ code. (website). http://build2.org/ (also at Internet Archive 17 Dec. 2019 16:03:15 ). build2 is an open source (MIT), cross-platform build toolchain for developing and packaging C and C++ code. It is a hierarchy of tools that includes the build system, package dependency manager (for package consumption), and project dependency manager (for project development).Google Scholar
- Casey Carter. 2018. Standard Library Concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0898R0. 12 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Cevelop 2014–2020. Cevelop: An Eclipse-based IDE (website; initial release: 21 July 2014). https://www.cevelop.com/ (also at Internet Archive 10 Oct. 2019 02:56:01 ). IDE++: Cevelop extends Eclipse CDT with many additional features: CUTE unit testing with Test Driven Development support, new refactorings and quick fixes, and much more. Cevelop comes with many tools to upgrade your code to C++11/14.Google Scholar
- Matúš Chochlík. 2014. Static reflection. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3996. 26 May 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n3996.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Matúš Chochlík. 2015. A case for strong static reflection. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4452. 11 April 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4452.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Matúš Chochlík and Axel Naumann. 2016. Static reflection (revision 4). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0194R0. 8 Feb. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0194r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Matúš Chochlík, Axel Naumann, and David Sankel. 2017. Static Reflection in a Nutshell. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0578R1. 18 June 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0578r1. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Clion Wikipedia 2020. JetBrains (formerly IntelliJ Software). https://en.wikipedia.org/wiki/JetBrains (also at Internet Archive 10 April 2020 22:12:43 ).Google Scholar
- Marshall Clow, Beman Dawes, Gabriel Dos Reis, Stephan T. Lavavej, Billy O’Neal, Bjarne Stroustrup, and Jonathan Wakely. 2018. Standard Library Modules. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0581R1. 11 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0581r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jonathan Coe and Roger Orr. 2015. Extension methods for C++ (Uniform-function-calling syntax lite). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0079R0. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/ 2015/p0079r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Conan 2016–2020. Conan, the C / C++ Package Manager for Developers (website). https://conan.io/ (also at Internet Archive 28 Jan. 2020 04:44:48 ). The open source, decentralized and multi-platform package manager to create and share all your native binaries.Google Scholar
- Melvin E. Conway. 1963. Design of a Separable Transition-Diagram Compiler. Commun. ACM 6, 7 (July), 396–408. 0001-0782 Google Scholar
Digital Library
- Coverity 2002–2020. Coverity: static analysis tools (website). https://scan.coverity.com/ (also at Internet Archive 5 March 2020 17:57:39 ). Find and fix defects in your Java, C/C++, C#, JavaScript, Ruby, or Python open source project for free. Test every line of code and potential execution path. The root cause of each defect is clearly explained, making it easy to fix bugs. Integrated with GitHub. More than 6600 open source projects and 33000 developers use Coverity Scan.Google Scholar
- Cppreference 2011–2020. Cppreference: An online reference for the C++ language and standard library (website). https: //en.cppreference.com/w/Main_Page (also at Internet Archive 31 March 2020 00:33:10 ). Our goal is to provide programmers with a complete online reference for the C and C++ languages and standard libraries, i.e., a more convenient version of the C and C++ standards.Google Scholar
- Lawrence Crowl. 2009. Reaching Scope of Lambda Expressions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2957. 25 Sept. 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2009/n2957.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl. 2013. Digit Separators. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3661. 19 April 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/n3661.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl. 2015a. Comparison in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4367. 8 Feb. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4367.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl. 2015b. Handling Disappointment in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0157R0. 7 Nov. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0157r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl. 2018. Ambiguity and Insecurities with Three-Way Comparison. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1380R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1380r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl and Thorsten Ottosen. 2006. Proposal to add Contract Programming to C++ (revision 4). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1962. 25 Feb. 2006. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2006/n1962.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lawrence Crowl, Richard Smith, Jeff Snyder, and Daveed Vandevoorde. 2013. Single-Quotation-Mark as a Digit Separator. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3781. 25 Sept. 2013. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2013/n3781.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ivan Čukić. 2018. Functional Programming in C++: How to improve your C++ programs using functional techniques. Manning Publications, Shelter Island, NY, USA. 320 book pages. 978-1617293818Google Scholar
- Krysztof Czarnecki and Ulrich Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, Reading, Massachussets, USA. 864 book pages. 978-0201309775Google Scholar
Digital Library
- Beman Dawes. 2006. Raw String Literals. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2053. 6 Sept. 2006. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2006/n2053.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Beman Dawes (Ed.). 2014. Programming languages — C++ — File System Technical Specification. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4100. 4 July 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4100. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Beman Dawes (Ed.). 2015. ISO/IEC TS 18822:2015: Programming languages — C++ — File System Technical Specification. ISO (International Organization for Standardization), Geneva, Switzerland (July). 63 book pages. https://www.iso.org/ standard/63483.html Status: withdrawn.Google Scholar
- Beman Dawes, Howard Hinnant, Bjarne Stroustrup, David Vandevoorde, and Michael Wong. 2018. Direction for ISO C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0939R0. 10 Feb. 2018. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2018/p0939r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Beman Dawes, Eric Niebler, and Casey Carter. 2016. Iterator Facade Library Proposal for Ranges. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0186R0. 11 Feb. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/ p0186r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Beman G. Dawes. 1998. Proposal for a C++ Library Repository Web Site. 6 May 1998. https://www.boost.org/users/proposal. pdf (also at Internet Archive 16 Dec. 2019 15:10:40 ).Google Scholar
- Jeffrey Dean and Sanjay Ghemawat. 2004. MapReduce: Simplified Data Processing on Large Clusters. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (San Francisco, California, USA, Dec.) (OSDI ’04). USENIX Association, Berkeley, California, USA, 137–149. https://www.usenix.org/legacy/events/osdi04/tech/full_papers/dean/ dean.pdf (also at Internet Archive 8 Feb. 2020 05:00:02 ).Google Scholar
Digital Library
- Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM 51, 1 (Jan.), 107–113. 0001-0782 Google Scholar
Digital Library
- James C. Dehnert and Alexander Stepanov. 2000. Fundamentals of Generic Programming. LNCS, Vol. 1766. Springer-Verlag, Berlin, 1–11. 978-3-540-41090-4 Google Scholar
Cross Ref
- Peter Dimov, Beman Dawes, and Greg Colvin. 2003. A Proposal to Add General Purpose Smart Pointers to the Library Technical Report. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1431. 28 Feb. 2003. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2003/n1431.htm (also at Internet Archive 24 Dec. 2016 19:20:32 ).Google Scholar
- Peter Dimov, Louis Dionne, Nina Ranns, Richard Smith, and Daveed Vandevoorde. 2019. More constexpr containers. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0784R5. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p0784r5.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Peter Dimov and Vassil Vassilev. 2018. Allowing Virtual Function Calls in Constant Expressions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1064R0. 4 May 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/ p1064r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Louis Dionne. 2016. Lambdas in unevaluated contexts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0315R0. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0315r0.pdf (also at Internet Archive 21 April 2020 02:00:28 ).Google Scholar
- Louis Dionne. 2017. Familiar template syntax for generic lambdas. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0428R2. 13 July 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0428r2.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Louis Dionne. 2018. Making std::vector constexpr. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1004R1. 7 Oct. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1004r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Louis Dionne and David Vandevoorde. 2018. Changing the active member of a union inside constexpr. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1330R0. 10 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p1330r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis. 2003. Generalized Constant Expressions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1521. 21 Sept. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1521.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis. 2009. IPR: Compiler-neutral Internal Program Representation for C++ (code repository). http://github. com/GabrielDosReis/ipr (also at Internet Archive 10 Jan. 2019 00:58:20 ).Google Scholar
- Gabriel Dos Reis. 2012. A System for Axiomatic Programming. In Intelligent Computer Mathematics: 11th International Conference (CICM 2012) (Bremen, Germany, July). Springer-Verlag, Berlin, Germany, 295–309. 978-3-642-31373-8 Google Scholar
Digital Library
- Gabriel Dos Reis (Ed.). 2018. Working Draft, Extensions to C++ for Modules. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4720. 29 Jan. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/n4720.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis, J-Daniel Garcia, John Lakos, Alisdair Meredith, Nathan Myers, and Bjarne Stroustrup. 2016a. A Contract Design. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0380R0. 28 May 2016. http://www.open- std.org/ jtc1/sc22/wg21/docs/papers/2016/p0380r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis, J-Daniel Garcia, John Lakos, Alisdair Meredith, Nathan Myers, and Bjarne Stroustrup. 2018. Support for contract-based programming in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0542R4. 2 April 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r4.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis, Mark Hall, and Gor Nishanov. 2014. A Module System for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4047. 27 May 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4047.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis and Mat Marcus. 2003. Proposal to add template aliases to C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1449. 7 April 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1449.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis, Nathan Sidwell, Richard Smith, and David Vandevoorde. 2019. Modules are ready. 14 Feb. 2019. Note on the WG21 mailing list.Google Scholar
- Gabriel Dos Reis and Richard Smith. 2018a. Modules for Standard C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1087R0. 7 May 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1087r0.pdf (also at Internet Archive 21 April 2020 03:04:09 ).Google Scholar
- Gabriel Dos Reis and Richard Smith. 2018b. Plan of Record for Making C++ Modules Available in C++ Standards. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0983R0. 1 April 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p0983r0.pdf (also at Internet Archive 21 April 2020 16:08:45 ).Google Scholar
- Gabriel Dos Reis and Bjarne Stroustrup. 2005a. A Formalism for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1885. 20 Oct. 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1885.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis and Bjarne Stroustrup. 2005b. Specifying C++ concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1886. 20 Oct. 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1886.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis and Bjarne Stroustrup. 2006. Specifying C++ Concepts. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Charleston, South Carolina, USA, Jan.) (POPL ’06). Association for Computing Machinery, New York, NY, USA, 295–308. 1595930272 Google Scholar
Digital Library
- Gabriel Dos Reis and Bjarne Stroustrup. 2007. Constant Expressions in the Standard Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2219. 11 March 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2219.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis and Bjarne Stroustrup. 2010. General Constant Expressions for System Programming Languages. In Proceedings of the 2010 ACM Symposium on Applied Computing (Sierre, Switzerland, March) (SAC ’10). Association for Computing Machinery, New York, NY, USA, 2131–2136. 978-1605586397 Google Scholar
Digital Library
- Gabriel Dos Reis and Bjarne Stroustrup. 2011. A Principled, Complete, and Efficient Representation of C++. Mathematics in Computer Science 5, 3 (Sept.), 335–356. 1661-8270 Google Scholar
Cross Ref
- Gabriel Dos Reis, Bjarne Stroustrup, and Alisdair Meredith. 2009. Axioms: Semantics Aspects of C++ Concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2887. 21 June 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2009/n2887.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gabriel Dos Reis, Herb Sutter, and Jonathan Caves. 2016b. Refining Expression Evaluation Order for Idiomatic C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0145R2. 3 March 2016. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2016/p0145r2.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Robert Douglas and Corentin Jabot. 2019. Adopt source location from Library Fundamentals V3 for C++20. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1208R5. 17 June 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1208r5.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Stefanus du Toit (Ed.). 2014. ISO/IEC 14882:2014: Information Technology — Programming languages — C++. ISO (International Organization for Standardization), Geneva, Switzerland (Dec.). 1358 book pages. https://www.iso.org/standard/64029.html Status: withdrawn.Google Scholar
- ECMA International. 2005. C++/CLI Language Specification. ECMA International, Geneva, Switzerland (Dec.). https: //www.ecma- international.org/publications/files/ECMA- ST/ECMA- 372.pdf (also at Internet Archive 13 April 2019 01:09:02 ). ECMA Standard ECMA-372.Google Scholar
- Robert Klarer (editor). 2007. Extension for the programming language C++ to support decimal floating-point arithmetic. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2198. 12 March 2007. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2007/n2198.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ). ISO/IEC WDTR 24733.Google Scholar
- David Eisenbud, Daniel R. Grayson, Michael Stillman, and Bernd Sturmfel (Eds.). 2001. Computations in Algebraic Geometry with Macaulay 2. Algorithms and Computation in Mathematics, Vol. 8. Springer, Berlin, Germany (Oct.). 345 book pages. 978-3540422303Google Scholar
- Margaret A. Ellis and Bjarne Stroustrup. 1990. The C++ Annotated Reference Manual. Addison-Wesley, Reading, Massachusetts, USA. 0-201-51459-1Google Scholar
- Hal Finkel and Richard Smith. 2016. Inline Variables. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0386R0. 30 May 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0386r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Eric Fiselier. 2019. Adding the ’constinit’ keyword. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1143R1. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1143r1.md (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading, Massachussets, USA. 416 book pages. 978-0201633610Google Scholar
Digital Library
- J. Daniel Garcia. 2018. Avoiding undefined behavior in contracts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1290R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1290r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- J. Daniel García, Francesco Logozzo, Gabriel Dos Reis, Manuel Fähndrich, and Shuvendu Lahiri. 2015. Simple Contracts for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4415. 12 April 2015. http://www.open- std.org/jtc1/ sc22/wg21/docs/papers/2015/n4415.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- J. Daniel Garcia and Bjarne Stroustrup. 2015. Improving performance and maintainability through refactoring in C++11. 27 Aug. 2015. https://pdfs.semanticscholar.org/1a84/826ad4968082761952b7ef0f5f6bc65f39e7.pdf (also at Internet Archive 19 Feb. 2019 20:02:29 ). Also at Research Gate: https://www.researchgate.net/publication/285576155_Improving_ performance_and_maintainability_through_refactoring_in_C11_Improving_performance_and_maintainability_ through_refactoring_in_C11Google Scholar
- Ronald Garcia, Jaakko Järvi, Andrew Lumsdaine, Jeremy Siek, and Jeremiah Willcock. 2007. An Extended Comparative Study of Language Support for Generic Programming. Journal of Functional Programming 17, 2 (March), 145–205. Google Scholar
Digital Library
- Mathias Gaunard and Dietmar Kühl. 2015. Function Object-Based Overloading of Operator Dot. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0060R0. 18 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/ p0060r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Michael Gibbs and Bjarne Stroustrup. 2006. Fast Dynamic Casting. Software: Practice and Experience 36, 2, 139–156. Google Scholar
Cross Ref
- GNUmake 2006–2020. GNUmake, a tool for generating executable code from multiple source files (website). http: //www.gnu.org/software/make/ (also at Internet Archive 8 April 2020 02:17:10 ). GNU Make is a tool which controls the generation of executables and other non-source files of a program from the program’s source files.Google Scholar
- Matt Godbolt. 2016. Compiler Explorer, an online interactive environment for compiling C++ using a variety of compilers and seeing the assembly code they generate (blog post). 4 Sept. 2016. https://xania.org/201609/how- compiler- explorerruns- on- amazon (also at Internet Archive 1 April 2020 22:07:49 ). https://godbolt.orgGoogle Scholar
- Nat Goodspeed. 2014. Stackful Coroutines and Stackless Resumable Functions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4232. 13 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4232.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Peter Gottschling. 2015. Discovering Modern C++. Addison-Wesley, Boston, Massachussets, USA. 978-0-13-438358-3Google Scholar
- Douglas Gregor. 2006. A Brief Introduction to Variadic Templates. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2087. 10 Sept. 2006. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2006/n2087.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Doug Gregor. 2010. Deprecating Exception Specifications. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3051. 12 March 2010. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2010/n3051.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Douglas Gregor. 2012. Modules (slides). Nov. 2012. http://llvm.org/devmtg/2012- 11/Gregor- Modules.pdf (also at Internet Archive 20 Dec. 2019 10:43:30 ). Video at https://youtu.be/586c_QMXir4 Meeting proceedings at http://llvm.org/devmtg/ 2012- 11/ Presentation at 2012 LLVM Developers’ Meeting, San Jose, California, USA.Google Scholar
- Douglas Gregor and David Abrahams. 2009. Rvalue References and Exception Safety. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2855. 23 March 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2009/n2855. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Douglas Gregor, Jaakko Järvi, and Gary Powell. 2004. Variadic Templates. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1603. 17 Feb. 2004. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2004/n1603.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Douglas Gregor, Jaakko Järvi, Jeremy Siek, Bjarne Stroustrup, Gabriel Dos Reis, and Andrew Lumsdaine. 2006. Concepts: Linguistic Support for Generic Programming in C++. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Portland, Oregon, USA, Oct.) (OOPSLA ’06). Association for Computing Machinery, New York, NY, USA, 291–310. SIGPLAN Notices 41, 10. 1595933484 0362-1340 Google Scholar
Digital Library
- Douglas Gregor and Andrew Lumsdaine. 2008. Core Concepts for the C++0x Standard Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2502. 3 Feb. 2008. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2008/n2502.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Douglas Gregor, Bjarne Stroustrup, James Widman, and Jeremy Siek. 2008. Proposed Wording for Concepts (Revision 6). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2676. 30 June 2008. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2008/n2676.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Aleksey Gurtovoy and David Abrahams. 2002–2020. The Boost MPL Library (website).Google Scholar
- Niklas Gustafsson. 2012. Resumable Functions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3328. 12 Jan. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3328.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard Hinnant, Roger Orr, Bjarne Stroustrup, David Vandevoorde, and Michael Wong. 2019. Direction for ISO C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0939R2. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2019/p0939r2.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard Hinnant, Roger Orr, Bjarne Stroustrup, David Vandevoorde, and Michael Wong. 2020. Direction for ISO C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P2000R0. 13 Jan. 2020. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2020/p2000r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard E. Hinnant, Dave Abrahams, and Peter Dimov. 2004. A Proposal to Add an Rvalue Reference to the C++ Language. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1690. 7 Sept. 2004. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2004/n1690.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard E. Hinnant, Walter E. Brown, Jeff Garland, and Marc Paterno. 2008. A Foundation to Sleep On: Clocks, Points in Time, and Time Durations. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2615. 18 May 2008. http: //www.open- std.org/jtc1/sc22/wg21/docs/papers/2008/n2615.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard E. Hinnant, Peter Dimov, and Dave Abrahams. 2002. A Proposal to Add Move Semantics Support to the C++ Language. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1377. 10 Sept. 2002. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2002/n1377.htm (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard E. Hinnant and Tomasz Kamiński. 2018. Extending <chrono> to Calendars and Time Zones. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0355R7. 16 March 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/ p0355r7.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Howard E. Hinnant, Bjarne Stroustrup, and Bronek Kozicki. 2006. A Brief Introduction to Rvalue References. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2027. 12 June 2006. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2006/n2027.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jared Hoberock (Ed.). 2019. Working Draft, C++ Extensions for Parallelism Version 2. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4796. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/n4796.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, and Michael Wong. 2018. Executors Design Document. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0761R2. 12 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0761r2.pdf (also at Internet Archive 21 April 2020 17:01:39 ).Google Scholar
- David S. Hollman. 2019. Experience Report: Implementing a Coroutines TS Frontend to an Existing Tasking Library Draft Proposal. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1403R0. 16 Jan. 2019. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2019/p1403r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Tom Honermann. 2017. Remove abbreviated functions and template-introduction syntax from the Concepts TS. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0696R0. 19 June 2017. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2017/p0696r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lee Howes, Eric Niebler, and Lewis Baker. 2018. In support of merging coroutines into C++20. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1241. 8 Oct. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1241r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jaakko Järvi. 2002. Proposal for adding tuple types into the standard library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1382. 10 Sept. 2002. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2002/n1382.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jaakko Järvi, Gary Powell, and Andrew Lumsdaine. 2003a. The Lambda Library: Unnamed functions in C++. Software: Practice and Experience 33, 3, 259–291. Google Scholar
Digital Library
- Jaakko Järvi, Bjarne Stroustrup, and Gabriel Dos Reis. 2007. Decltype (revision 7): proposed wording. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2343. 18 July 2007. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2007/n2343.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jaakko Järvi, Bjarne Stroustrup, Doug Gregor, and Jeremy Siek. 2003b. Decltype and auto. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1478. 28 April 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1478.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- JetBrains. 2020. CLion: A cross-platform IDE for C and C++ (website). https://www.jetbrains.com/clion/ (also at Internet Archive 10 April 2020 00:41:01 ). Smart C and C++ editor: Thanks to native C and C++ support, including modern C++ standards, libc++ and Boost, CLion knows your code through and through and takes care of the routine while you focus on the important things.Google Scholar
- Christopher Jonathan, Umar Farooq Minhas, James Hunter, Justin Levandoski, and Gor Nishanov. 2018. Exploiting Coroutines to Attack the “Killer Nanoseconds”. Proceedings of the VLDB Endowment 11, 11 (July), 1702–1714. 2150-8097 Google Scholar
Digital Library
- Nicolai Josuttis, Lewis Baker, Billy O’Neal, Herb Sutter, and Anthony Williams. 2019a. Stop Token and Joining Thread, Rev 9. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0660R9. 10 March 2019. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2019/p0660r9.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Nicolai Josuttis, Ville Voutilainen, Roger Orr, Daveed Vandevoorde, John Spicer, and Christopher Di Bella. 2019b. Remove Contracts from C++20. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1823R0. 18 July 2019. http: //www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1823r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Hartmut Kaiser, Maciek Brodowicz, and Thomas Sterling. 2009Sept.. ParalleX: An Advanced Parallel Execution Model for Scaling-Impaired Applications. In 38th International Conference on Parallel Processing Workshops (ICPPW 2009) (Vienna, Austria). IEEE Computer Society, Los Alamitos, California, USA, 394–401. 978-0-7695-3803-7 Google Scholar
Digital Library
- D. Kapur, D. R. Musser, and A. A. Stepanov. 1981. Operators and Algebraic Structures. In Proceedings of the 1981 Conference on Functional Programming Languages and Computer Architecture (Portsmouth, New Hampshire, USA) (FPCA ’81). Association for Computing Machinery, New York, NY, USA, 59–64. 0897910605 Google Scholar
Digital Library
- Anastasia Kazakova. 2015. Infographic: C/C++ Facts We Learned Before Going Ahead with CLion (blog post). 27 July 2015. http://blog.jetbrains.com/clion/2015/07/infographics- cpp- facts- before- clion/ (also at Internet Archive 28 Jan. 2020 05:02:34 ).Google Scholar
- Erich Keane, Adam David Alan Martin, and Allan Deutsch. 2017. A Case for Simplifying/Improving Natural Syntax Concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0782R0. 25 Sept. 2017. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2017/p0782r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Brian Kernighan and Dennis M. Ritchie. 1978. The C Programming Language. Prentice Hall, Englewood Cliffs, NJ, USA. 978-0131101630Google Scholar
- Rostislav Khlebnikov and John Lakos. 2019. Contracts, Undefined Behavior, and Defensive Programming. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1743R0. 17 June 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1743r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Koenig and Bjarne Stroustrup. 1989. Exception Handling for C++. In Proceedings of the USENIX “C++ at Work” Conference (Nov.). USENIX Association, Berkeley, California, USA, 31 pages. http://www.rajatorrent.com.stroustrup. com/except89.pdf (also at Internet Archive 11 April 2020 01:00:36 ).Google Scholar
- Andrew Koenig and Bjarne Stroustrup. 1991a. Analysis of Overloaded operator.(). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N0054. 21 Sept. 1991. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/1991/WG21%201991/ X3J16_91- 0121%20WG21_N0054.pdf (also at Internet Archive 12 April 2016 17:17:26 ).Google Scholar
- Andrew Koenig and Bjarne Stroustrup. 1991b. C++: As close to C as possible but no closer. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N0089. May 1991. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/1991/WG21% 201991/X3J16_91- 0089%20WG21_N0007.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ). Also bears the document number N0007 and the date 11 May 1989.Google Scholar
- Andrew R. Koenig (Ed.). 1998. ISO/IEC 14882:1998: Programming languages — C++. ISO (International Organization for Standardization), Geneva, Switzerland (Sept.). 732 book pages. https://www.iso.org/standard/25845.html Status: withdrawn.Google Scholar
- Christopher Kohlhoff. 2005. Boost ASIO (website). https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio.html (also at Internet Archive 11 April 2020 01:04:37 ). Boost.Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.Google Scholar
- Christopher Kohlhoff. 2006. Networking Library Proposal for TR2. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2054. 8 Sept. 2006. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2006/n2054.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Christopher Kohlhoff. 2013. A Universal Model for Asynchronous Operations. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3747. 1 Sept. 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/n3747.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Christopher M. Kohlhoff. 2018. ASIO C++ Library (website). http://think- async.com/Asio/ (also at Internet Archive 23 March 2020 15:37:13 ). Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.Google Scholar
- Thomas Köppe. 2016a. Hexadecimal floating literals for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0245R0. 9 Feb. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0245r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Thomas Köppe. 2016b. Selection statements with initializer. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0305R1. 24 June 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0305r1.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Thomas Köppe. 2017a. An Adjective Syntax for Concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0807R0. 12 Oct. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0807r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Thomas Köppe. 2017b. Allow lambda capture [=, this]. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0409R2. 4 March 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0409r2.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Thomas Köppe. 2017c. Range-based for statements with initializer. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0614R1. 6 Nov. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r1.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Oliver Kowalke. 2015. A low-level API for stackful coroutines. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4397. 9 April 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4397.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Oliver Kowalke and Nat Goodspeed. 2013. A proposal to add coroutines to the C++ standard library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3708. 4 March 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/ n3708.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- John Lakos. 2018. “Avoiding undefined behavior in contracts” [P1290R0] Explained. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1335R0. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1335r0.txt (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- John Lakos. 2019. United Amendment to Contracts Facility for C++20. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1486R1. 21 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1486r1.txt (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- John Lakos and Alexei Zakharov. 2013. Centralized Defensive-Programming Support for Narrow Contracts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3604. 18 March 2013. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2013/n3604.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Leslie Lamport. 1978. Time, Clocks and the Ordering of Events in a Distributed System. Commun. ACM 21, 7 (July), 558–565. 0001-0782 Google Scholar
Digital Library
- Leslie Lamport. 1979. How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Trans. Comput. C-28, 9 (Sept.), 690–691. 2326-3814 Google Scholar
Digital Library
- Bryce Adelstein Lelbach, Olivier Giroux, JF Bastien, Detlef Vollmann, and David Olsen. 2019. The C++20 Synchronization Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1135R4. 4 March 2019. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2019/p1135r4.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lockheed Martin Corporation. 2005. Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program. Lockheed Martin Corporation (Dec.). http://stroustrup.com/JSF- AV- rules.pdf (also at Internet Archive 8 Jan. 2020 08:09:03 ). Document Number 2RDU00001 Rev C.Google Scholar
- Bruno Cardoso Lopes, Michael Spencer, and JF Bastien. 2019. Modules Feedback. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1482R0. 8 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1482r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- John Maddock. 2002. A Proposal to add Regular Expressions to the Standard Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1386. 6 Sept. 2002. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2002/n1386.htm (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jens Maurer. 2002. A Proposal to Add an Extensible Random Number Facility to the Standard Library. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1398. 10 Nov. 2002. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2002/n1398.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jens Maurer. 2012. Allowing arbitrary literal types for non-type template parameters. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3413. 19 Sept. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3413.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jens Maurer. 2019. Bit operations. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0553R4. 1 March 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jens Maurer and Michael Wong. 2007. Towards support for attributes in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2236. 4 May 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2236.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ian McIntosh, Michael Wong, Raymond Mak, Robert Klarer, Jens Maurer, Alisdair Meredith, Bjarne Stroustrup, and David Vandevoorde. 2008. User-defined Literals (aka. Extensible Literals (revision 5)). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2765. 18 Sept. 2008. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Paul McJones (Ed.). 2007–2020. C++ Historical Sources Archive (website). Computer History Museum Software Preservation Group. http://www.softwarepreservation.org/projects/c_plus_plus/ (also at Internet Archive 29 March 2020 16:45:18 ). This is a collection of design documents, source code, and other materials concerning the birth, development, standardization, and use of the C++ programming language. C++ added January 2007.Google Scholar
- Paul E. McKenney, Mark Batty, Clark Nelson, Hans Boehm, Anthony Williams, Scott Owens, Susmit Sarkar, Peter Sewell, Tjark Weber, Michael Wong, Lawrence Crowl, and Benjamin Kosnik. 2010. Omnibus Memory Model and Atomics Paper. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3196. 11 Nov. 2010. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2010/n3196.htm (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Alisdair Meredith. 2007. Seeking a Syntax for Attributes in C++09. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2224. 12 March 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2224.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Alisdair Meredith. 2012. Call for Library Proposals. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3370. 26 Feb. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3370.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Alisdair Meredith and Herb Sutter. 2017. Revising atomic_shared_ptr for C++20. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0718R2. 10 Nov. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bertrand Meyer. 1994. Object-Oriented Software Construction. Prentice Hall, Englewood Cliffs, NJ, USA. 534 book pages. 978-0136290490Google Scholar
Digital Library
- Scott Meyers. 2014. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14. O’Reilly Media, Sebastopol, California. 978-1491903995Google Scholar
- Microsoft. 2020. Visual Studio: Best-in-class tools for any developer (website). https://visualstudio.microsoft.com/ (also at Internet Archive 13 April 2020 16:16:48 ). Visual Studio: Full-featured IDE to code, debug, test, and deploy to any platform Visual Studio Code: Editing and debugging on any OS Visual Studio for Mac: Develop apps and games for iOS, Android, and web using .NETGoogle Scholar
- Mihail Mihaylov and Vassil Vassilev. 2018. On the Coroutines TS. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1329R0. 2 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1329r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mihail Mihaylov and Vassil Vassilev. 2019. First-class symmetric coroutines in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1430R0. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1430r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- William M. Miller. 2010. Rvalue References as “Funny” Lvalues. Edison Design Group. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3030. 14 Feb. 2010. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2010/n3030.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Lev Minkovsky and John McFarlane. 2019. Math Constants. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0631R7. 24 May 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r7.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mobileye. 2020. ADAS (Advanced Driver Assistance Systems) (website). https://www.mobileye.com/our- technology/adas/ (also at Internet Archive 13 Jan. 2020 03:29:15 ). Mobileye is an Intel company.Google Scholar
- Sergei Murzin, Michael Park, David Sankel, and Dan Sarginson. 2019. Pattern Matching. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1371R0. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1371r0. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Sergei Murzin, Michael Park, David Sankel, and Dan Sarginson. 2020. Pattern Matching. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1371R2. 13 Jan. 2020. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2020/p1371r2. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- David R. Musser and Alexander A. Stepanov. 1987. A Library of Generic Algorithms in Ada. In Proceedings of the 1987 Annual ACM SIGAda International Conference on Ada (Boston, Massachusetts, USA, Dec.) (SIGAda ’87 ). Association for Computing Machinery, New York, NY, USA, 216–225. 0897912438 Google Scholar
Digital Library
- Axel Naumann. 2012. Introducing cling, a C+++ Interpreter Based on clang/LLVM (video). 15 March 2012. https: //youtu.be/f9Xfh8pv3Fs Google Tech Talk (48 minutes).Google Scholar
- Axel Naumann, Philippe Canal, Paul Russo, and Vassil Vassilev. 2010. Creating cling, an interactive interpreter interface for clang (video). 4 Nov. 2010. http://llvm.org/devmtg/2010- 11/ (also at Internet Archive 2 April 2020 04:03:23 ). Video at https://youtu.be/BjmGOMJWeAo Slides at http://llvm.org/devmtg/2010- 11/Naumann- Cling.pdf Talk at 2010 LLVM Developers’ Meeting (26 minutes).Google Scholar
- Peter Naur. 1966. Proof of Algorithms by General Snapshots. BIT (Nordisk Tidskrift för Informationsbehandling) Numerical Mathematics 6, 4, 310–316. Google Scholar
Digital Library
- Eric Niebler and Casey Carter. 2017. C++ Extensions for Ranges. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4651. 15 March 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/n4651.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Eric Niebler, Casey Carter, and Christopher Di Bella. 2018. The One Ranges Proposal (was Merging the Ranges TS). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0896R2. 25 June 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p0896r2.pdf (also at Internet Archive 21 April 2020 20:59:57 ).Google Scholar
- Eric Niebler, Sean Parent, and Andrew Sutton. 2014. Ranges for the Standard Library, Revision 1. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4128. 10 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4128. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gor Nishanov. 2017. ISO/IEC TS 22277:2017: Technical Specification — C++ Extensions for Coroutines. ISO (International Organization for Standardization), Geneva, Switzerland (Nov.). 18 book pages. https://www.iso.org/standard/73008.htmlGoogle Scholar
- Gor Nishanov. 2018. Incremental Approach: Coroutine TS + Core Coroutines. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1362R0. 15 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1362r0.pdf (also at Internet Archive 21 April 2020 21:01:42 ).Google Scholar
- Gor Nishanov. 2019a. C++ Exception Optimizations. An experiment. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1676R0. 4 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1676r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Gor Nishanov. 2019b. Response to response to “Fibers under the magnifying glass”. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1520R0. 8 March 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1520r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- NVIDIA. 2020. Advanced Driver Assistance Systems (ADAS) (website). https://www.nvidia.com/en- us/self- drivingcars/adas/ (also at Internet Archive 10 April 2020 17:56:28 ).Google Scholar
- Günter Obiltschnig et al. 2005. POCO C++ Libraries (website). http://pocoproject.org/ (also at Internet Archive 3 March 2020 05:39:34 ). The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems. Initial release: February 21, 2005.Google Scholar
- Objective C++ Wikipedia 2020. Objective C++ (a language variant accepted by GNU GCC and Clang). https://en.wikipedia. org/wiki/Objective- C#Objective- C++ (also at Internet Archive 9 April 2020 21:16:54 ).Google Scholar
- OpenCV Wikipedia 2020. OpenCV (Open source Computer Vision). https://en.wikipedia.org/wiki/OpenCV (also at Internet Archive 3 April 2020 14:24:23 ).Google Scholar
- Thorsten Ottosen. 2005. Proposal for new for-loop. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1796. 27 April 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1796.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Thorsten Ottosen, Lawrence Crowl, and Douglas Gregor. 2007. Wording for range-based for-loop (revision 1). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2196. 7 March 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2007/n2196.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Peter Pirkelbauer, Yuriy Solodkyy, and Bjarne Stroustrup. 2010. Design and Evaluation of C++ Open Multi-Methods. Science of Computer Programming 75, 7 (July), 638–667. 0167-6423 Google Scholar
Digital Library
- Gary Powell, Doug Gregor, and Jaakko Järvi. 2004. Overloading Operator.() & Operator.*(). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1671. 10 Sept. 2004. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2004/n1671.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Georgios Psaropoulos, Thomas Legler, Norman May, and Anastasia Ailamaki. 2017. Interleaving with Coroutines: A Practical Approach for Robust Index Joins. In Proceedings of the 44th International Conference on Very Large Data Bases (Rio de Janeiro, Brazil, 31 Aug.). VLDB Endowment Inc., Los Angeles, California, 230–242. Proceedings of the VLDB Endowment 11, 2. Google Scholar
Digital Library
- William Pugh. 2004. JSR 133: Java Memory Model and Thread Specification Revision (website). Sept. 2004. http: //jcp.org/en/jsr/detail?id=133 (also at Internet Archive 29 Sept. 2019 09:53:52 ). The proposed specification describes the semantics of threads, locks, volatile variables and data races. This includes what has been referred to as the Java memory model.Google Scholar
- Qt 1991–2020. Qt, a platform for GUI and related software (website). http://www.qt.io/ (also at Internet Archive 3 April 2020 19:32:36 ). One framework. One codebase. Any platform. Everything you need for your entire software development life cycle. Qt is the fastest and smartest way to produce industry-leading software that users love.Google Scholar
- Tahina Ramananandro, Gabriel Dos Reis, and Xavier Leroy. 2011. Formal Verification of Object Layout for C++ Multiple Inheritance. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Austin, Texas, USA) ( POPL ’11). Association for Computing Machinery, New York, NY, USA, 67–80. 978-1450304900 Google Scholar
Digital Library
- Tahina Ramananandro, Gabriel Dos Reis, and Xavier Leroy. 2012. A Mechanized Semantics for C++ Object Construction and Destruction, with Applications to Resource Management. In Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Philadelphia, PA, USA) (POPL ’12). Association for Computing Machinery, New York, NY, USA, 521–532. 978-1450310833 Google Scholar
Digital Library
- James Reinders. 2007. Intel Threading Building Blocks: Outfitting C++ For Multi-Core Processor Parallelism. O’Reilly Media, Sebastopol, California (July). 344 book pages. 978-0596514808 http://shop.oreilly.com/product/9780596514808.do Code repository at http://threadingbuildingblocks.org/Google Scholar
- James Renwick, Tom Spink, and Björn Franke. 2019. Low-Cost Deterministic C++ Exceptions for Embedded Systems. In Proceedings of the 28th International Conference on Compiler Construction (Washington, DC, USA, Feb.) (CC 2019). Association for Computing Machinery, New York, NY, USA, 76–86. 978-1450362771 Google Scholar
Digital Library
- Vincent Reverdy. 2012. A proposal to add special mathematical functions according to the ISO/IEC 80000-2:2009 standard. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3494. 19 Dec. 2012. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2013/n3494.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Barry Revzin. 2017. Allow pack expansion in lambda init-capture. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0780R0. 8 Oct. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0780r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Barry Revzin. 2018. <=> != ==. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1185R0. 7 Oct. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1185r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Barry Revzin. 2019. Spaceship needs a tune-up: Addressing some discovered issues with P0515 and P1185. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1630R1. 17 July 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1630r1.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Barry Revzin and Stephan T. Lavavej. 2018. explicit(bool). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0892R2. 8 June 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jakob Riedle. 2017. Concepts are Adjectives, not Nouns. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0791R0. 10 Oct. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0791r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Torvald Riegel. 2015. On unifying the coroutines and resumable functions proposals. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0073R0. 25 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0073r0. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Dennis M. Ritchie. 1990. Variable-Size Arrays in C. Journal of C Language Translation 2, 2 (Sept.), 81–86. http://jclt.iecc.com/ Jct22.pdf (also at Internet Archive 2 April 2016 11:29:25 ). See also https://www.bell- labs.com/usr/dmr/www/vararray.pdfGoogle Scholar
- Rene Rivera. 2019a. Are modules fast? (revision 0). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1441R0. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1441r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Rene Rivera. 2019b. Are modules fast? (revision 1). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1441R1. 6 March 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1441r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Geoff Romer, James Dennett, and Chandler Carruth. 2018. Core Coroutines: Making coroutines simpler, faster, and more general. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1063R0. 6 May 2018. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2018/p1063r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Geoff Romer, James Dennett, and Chandler Carruth. 2019a. Core Coroutines: Making coroutines simpler, faster, and more general. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1063R2. 16 Jan. 2019. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2019/p1063r2.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Geoffrey Romer, Gor Nishanov, Lewis Baker, and Mihail Mihailov. 2019b. Coroutines: Use-cases and Trade-offs. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1493R0. 19 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1493r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Hyman Rosen, John Lakos, and Alisdair Meredith. 2019. Adding a global contract assumption mode. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1730R0. 14 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/ p1730r0.md (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- David Sankel (Ed.). 2018. Working Draft, C++ Extensions for Reflection. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4766. 11 Aug. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/n4766.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- David Sankel and Daveed Vandevoorde. 2019. User-friendly and Evolution-friendly Reflection: A Compromise Document. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1733R0. 15 June 2019. http://www.open- std.org/jtc1/sc22/ wg21/docs/papers/2019/p1733r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Tim Shen, Richard Smith, Zhihao Yuan, and Chandler Carruth. 2016. Designated Initialization. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0329R0. 9 May 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/ p0329r0.pdf (also at Internet Archive 21 April 2020 21:37:11 ).Google Scholar
- Nathan Sidwell. 2018. Module Preamble is Unnecessarily Fragile (re N4720 Merging Modules). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1299R3. 13 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/ p1299r3.pdf (also at Internet Archive 21 April 2020 21:39:18 ).Google Scholar
- Nathan Sidwell. 2019. Make Me A Module (re P1184 A Module Mapper). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1602R0. 1 March 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1602r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Nathan Sidwell and Davis Herring. 2019. Modules: ADL & Internal Linkage (re P1103R1 Merging Modules). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1347R1. 17 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1347r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jeremy Siek and Andrew Lumsdaine. 2000–2007. The Boost Concept Check Library (BCCL) (website). https://www.boost. org/doc/libs/1_69_0/libs/concept_check/concept_check.htm (also at Internet Archive 16 Feb. 2019 12:45:11 ). The Concept Check library allows one to add explicit statement and checking of concepts in the style of the proposed C++ language extension. The mechanisms use standard C++ and introduce no run-time overhead. The main cost of using the mechanism is in compile-time.Google Scholar
- Jeremy Siek and Walid Taha. 2006. A Semantic Analysis of C++ Templates. In Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP) (Nantes, France). Springer-Verlag, Berlin and Heidelberg, Germany, 304–327. 3540357262 Google Scholar
Digital Library
- Cleiton Santoia Silva and Daniel Auresco. 2014. C++ type reflection via variadic template expansion. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3951. 7 Feb. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n3951. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith. 2013. Relaxing constraints on constexpr functions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3597. 15 March 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/n3597.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith. 2015. Guaranteed copy elision through simplified value categories. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0135R0. 27 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith (Ed.). 2017. ISO/IEC 14882:2017: Programming languages — C++. ISO (International Organization for Standardization), Geneva, Switzerland (Dec.). 1605 book pages. https://www.iso.org/standard/68564.htmlGoogle Scholar
- Richard Smith. 2018a. Another take on Modules. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0947R0. 12 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0947r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith. 2018b. Another take on Modules (Revision 1). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0947R1. 6 March 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0947r1.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith. 2018c. Towards consistency between <=> and other comparison operators. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0946R0. 10 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0946r0. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith. 2019. Merging Modules. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1103R3. 22 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1103r3.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith (Ed.). 2020. Working Draft, Standard for Programming Language C++. Number N4861. (April). 1834 book pages. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2020/n4861.pdf (also at Internet Archive 27 April 2020 14:58:44 ).Google Scholar
- Richard Smith and Gabriel Dos Reis. 2018. Merging Modules. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1103R0. 22 June 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1103r0.pdf (also at Internet Archive 21 April 2020 22:21:27 ).Google Scholar
- Richard Smith and Gor Nishanov. 2018. Halo: coroutine Heap Allocation eLision Optimization: The joint response. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0981R0. 18 March 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p0981r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith and Andrew Sutton. 2017. Semantic constraint matching for concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0717R0. 19 June 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0717r0. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith, Andrew Sutton, and Daveed Vandevoorde. 2018a. Immediate functions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1073R3. 6 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1073r3. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith, Andrew Sutton, and Daveed Vandevoorde. 2018b. std::is_constant_evaluated(). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0595R2. 9 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p0595r2.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Richard Smith, Daveed Vandevoorde, Geoffrey Romer, Gor Nishanov, Nathan Sidwell, Iain Sandoe, and Lewis Baker. 2019. Coroutines: Language and Implementation Impact. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1492R0. 19 Feb. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1492r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Oleg Smolsky. 2014. Defaulted comparison operators. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3950. 19 Feb. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n3950.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jeff Snyder and Chandler Carruth. 2013. Call for Compile-Time Reflection Proposals. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3814. 6 Oct. 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/n3814.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Yuriy Solodkyy, Gabriel Dos Reis, and Bjarne Stroustrup. 2013. Open Pattern Matching for C++. In Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, & Applications: Software for Humanity (Indianapolis, Indiana, USA, Oct.) ( SPLASH ’13). Association for Computing Machinery, New York, NY, USA, 97–98. 978-1450319959 Google Scholar
Digital Library
- Yuriy Solodkyy, Gabriel Dos Reisl, and Bjarne Stroustrup. 2012. Open and Efficient Type Switch for C++. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (Tucson, Arizona, USA, Oct.) ( OOPSLA ’12). Association for Computing Machinery, New York, NY, USA, 963–982. SIGPLAN Notices 47, 10 (Nov. 2012). 978-1450315616 Google Scholar
Digital Library
- Yuriy Solodkyy, Gabriel Dos Reisl, and Bjarne Stroustrup. 2014. Pattern Matching for C++. Nov. 2014. http://wiki. edg.com/pub/Wg21urbana- champaign/EveningSessions/pattern_matching.pdf Evening session at WG21 meeting in Urbana-Champaign, Illinois.Google Scholar
- Mike Spertus. 2018. Extensions to Class Template Argument Deduction. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1021R0. 7 May 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1021r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mike Spertus, Timur Doumler, and Richard Smith. 2018. Filling holes in Class Template Argument Deduction. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1021R3. 26 Nov. 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1021r3.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mike Spertus and Richard Smith. 2015. Template parameter deduction for constructors (Rev. 3). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0091R0. 24 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/ p0091r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Alexander Stepanov. 1986. Scheme higher order programming library (code repository plus documentation). Aug. 1986. http://stepanovpapers.com/schemenotes/index.html (also at Internet Archive 16 Aug. 2018 07:27:46 ).Google Scholar
- Alex Stepanov and Paul McJones. 2009. Elements of Programming. Addison-Wesley, Reading, Massachusetts, USA. 288 pages. 978-0321635372Google Scholar
- Arthur G. Stephenson et al. 1999. Mars Climate Orbiter Mishap Investigation Board Phase I Report. Technical Report. NASA (10 Nov.). https://llis.nasa.gov/llis_lib/pdf/1009464main1_0641- mr.pdf (also at Internet Archive 5 March 2020 02:00:59 ).Google Scholar
- Bjarne Stroustrup. 1982. Classes: An Abstract Data Type Facility for the C Language. SIGPLAN Notices 17, 1 (Jan.), 42–51. 0362-1340 Google Scholar
Digital Library
- Bjarne Stroustrup. 1985a. AT&T C++ Translator Release Notes. Nov. 1985. Archived at the Computer History Museum: http://www.softwarepreservation.org/projects/c_plus_plus/ (also at Internet Archive 29 March 2020 16:45:18 ). Contains the manual and tutorials (e.g., for stream I/O and tasks).Google Scholar
- Bjarne Stroustrup. 1985b. The C++ Programming Language. Addison-Wesley, Reading, Massachusetts, USA. 0-201-12078-XGoogle Scholar
- Bjarne Stroustrup. 1985c. A Set of C++ Classes for Co-routine Style Programming. In C++ Translator Release Notes. AT&T, New York, NY, USA (Nov.). http://www.softwarepreservation.org/projects/c_plus_plus/cfront/release_e/doc/ ClassesForCoroutines.pdf (also at Internet Archive 18 July 2019 02:33:30 ). First published internally in 1980.Google Scholar
- Bjarne Stroustrup. 1991. The C++ Programming Language (2th Edition). Addison-Wesley, Reading, Massachusetts, USA. 0-201-53992-6Google Scholar
- Bjarne Stroustrup. 1993. A History of C++. In The Second ACM SIGPLAN Conference on History of Programming Languages (Cambridge, Massachusetts, USA, March) ( HOPL-II ). Association for Computing Machinery, New York, NY, USA, 271–297. 0897915704 Google Scholar
Digital Library
- Bjarne Stroustrup. 1994. The Design and Evolution of C++. Addison-Wesley, Reading, Massachusetts, USA. 0-201-54330-3Google Scholar
- Bjarne Stroustrup. 1997. The C++ Programming Language (3rd Edition). Addison-Wesley, Reading, Massachusetts, USA. 0-201-88954-4Google Scholar
Digital Library
- Bjarne Stroustrup. 1998. Generalizing Overloading for C++2000. Overload Journal 25 (1 April), 20–24. 1354-3172 https: //accu.org/var/uploads/journals/overload25.pdf (also at Internet Archive 13 May 2011 09:37:09 ).Google Scholar
- Bjarne Stroustrup. 2003. Concept checking — A more abstract complement to type checking. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1510. 22 Oct. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1510.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2004–2020. Why can’t I define constraints for my template parameters? (website). http://www.stroustrup. com/bs_faq2.html#constraints (also at Internet Archive 10 April 2020 05:20:05 ).Google Scholar
- Bjarne Stroustrup. 2005. A rationale for semantically enhanced library languages. In Proceedings of the Workshop on LibraryCentric Software Design (LCSD’05), co-located with OOPSLA 2005 (San Diego, California, USA, 16 Oct.). Department of Computer Science & Engineering, Texas A&M University, College Station, Texas, USA, 44. Archived at https: //web.archive.org/web/20051118062506/http://lcsd05.cs.tamu.edu/papers/stroustrup.pdfGoogle Scholar
- Bjarne Stroustrup. 2007. Evolving a Language in and for the Real World: C++ 1991–2006. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages (San Diego, California, June) (HOPL III ). Association for Computing Machinery, New York, NY, USA, 4–1–4–59. 978-1595937667 Google Scholar
Digital Library
- Bjarne Stroustrup. 2008a. Programming – Principles and Practice Using C++. Addison-Wesley, Boston, Massachusetts, USA. 978-0321543721 There is also a second edition, ISBN 978-0321992789, 2014.Google Scholar
- Bjarne Stroustrup. 2008b. Uniform initialization design choices (Revision 2). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2532. 2 Feb. 2008. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2008/n2532.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2009a. The C++0x “Remove Concepts” Decision. Dr. Dobb’s Journal (July). https://www.drdobbs.com/ cpp/the- c0x- remove- concepts- decision/218600111 (also at Internet Archive 9 Oct. 2012 01:02:52 ).Google Scholar
- Bjarne Stroustrup. 2009b. The C++0x “Remove Concepts” Decision. Overload Journal 92 (Aug.). https://accu.org/index.php/ journals/1576 (also at Internet Archive 4 March 2010 22:57:32 ). Reprinted with permission from Dr. Dobb’s Journal.Google Scholar
- Bjarne Stroustrup. 2009c. Simplifying the use of concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2906. 21 June 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2009/n2906.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2010a. “New” Value Terminology. April 2010. http://stroustrup.com/terminology.pdf (also at Internet Archive 2 Oct. 2012 20:01:36 ).Google Scholar
- Bjarne Stroustrup. 2010b. What Should We Teach New Software Developers? Why? Communications of the ACM 53, 1 (Jan.), 40–42. 0001-0782 Google Scholar
Digital Library
- Bjarne Stroustrup. 2012. Software Development for Infrastructure. Computer 45, 1 (Jan.), 47–58. 0018-9162 Google Scholar
Digital Library
- Bjarne Stroustrup. 2013. The C++ Programming Language (4th Edition). Addison-Wesley, Boston, Massachusetts, USA. 978-0321563842Google Scholar
- Bjarne Stroustrup. 2014a. Call syntax: x.f(y) vs. f(x,y). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4174. 11 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4174.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2014b. Default comparisons. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4175. 11 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4175.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2014c. Thoughts about Comparisons. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4176. 11 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4176.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2014d. A Tour of C++. Addison-Wesley, Boston, Massachusetts, USA. 978-0321958310Google Scholar
- Bjarne Stroustrup. 2015a. Thoughts about C++17. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4492. 15 May 2015. http://open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4492.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2015b. Unified call syntax concerns. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0131R0. 27 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0131r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2017a. Concepts: The Future of Generic Programming; or, How to Design Good Concepts and Use Them Well. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0557R1. 31 Jan. 2017. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2017/p0557r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2017b. Function declarations using concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0694R0. 18 June 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0694r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2017c. Learning and Teaching Modern C++ (video). 25 Sept. 2017. https://youtu.be/fX2W3nNjJIo Opening keynote for CppCon (the C++ Conference), Bellevue, Washington, USA (99 minutes).Google Scholar
- Bjarne Stroustrup. 2018a. The Evils of Paradigms; or, Beware of one-solution-fits-all thinking. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0976R0. 6 March 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/ p0976r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2018b. A minimal solution to the concepts syntax problems. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1079. 6 May 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1079r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2018c. Modules and macros. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0955R0. 11 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0955r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2018d. Remember the Vasa! ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0977R0. 6 March 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0977r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2018e. Subscripts and sizes should be signed. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1428R0. 18 Jan. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1428r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2018f. A Tour of C++ (Second Edition). Addison-Wesley, Boston, Massachusetts, USA. 978-0134997834Google Scholar
- Bjarne Stroustrup. 2018g. What do we want to do with reflection? ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0954R0. 11 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0954r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2019a. C++ exceptions and alternatives. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1947R0. 18 Nov. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1947r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2019b. How can you be so certain? ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1962R0. 18 Nov. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1962r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup. 2019c. What to do about contracts? ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1711R0. 13 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1711r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup et al. 1992. How to Write a C++ Language Extension Proposal for ANSI-X3J16/ISO-WG21. SIGPLAN Notices 27, 6 (June), 64–71. 0362-1340 Google Scholar
Digital Library
- Bjarne Stroustrup and Gabriel Dos Reis. 2003a. Concepts — Design choices for template argument checking. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1522. 22 Oct. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2003/n1522.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2003b. Concepts – Syntax and composition. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1536. 22 Oct. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1536.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2003c. Templates aliases for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1489. 16 Sept. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1489.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2005a. A concept design (Rev. 1). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1782. April 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1782.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2005b. Initialization and initializers. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1890. 22 Sept. 2005. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2005/n1890.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2014. Operator Dot. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4173. 11 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Gabriel Dos Reis. 2016. Operator Dot (R3). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0416R1. 16 Oct. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0416r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup and Herb Sutter (Eds.). 2014–2020. C++ Core Guidelines (online document repository). http://github. com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md (also at Internet Archive 24 Feb. 2020 12:59:15 ). Continually updated.Google Scholar
- Bjarne Stroustrup and Herb Sutter. 2015. Unified Call Syntax: x.f(y) and f(x,y). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4474. 12 April 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4474.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Bjarne Stroustrup, Herb Sutter, and Gabriel Dos Reis. 2015. A brief introduction to C++’s model for type- and resource-safety. Isocpp.org. Oct. 2015. http://www.stroustrup.com/resource- model.pdf (also at Internet Archive 10 April 2020 05:20:23 ). Revised Dec. 2015.Google Scholar
- Bjarne Stroustrup and Andrew Sutton (Eds.). 2012. A Concept Design for the STL. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3351. 13 Jan. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3351.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2002. Proposed Addition to C++: Typedef Templates. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1406. 21 Oct. 2002. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2002/n1406.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2012. async and ~future. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3451. 23 Sept. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3451.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2013a. ~thread Should Join. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3636. 17 April 2013. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2013/n3636.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2013b. AAA Style (Almost Always Auto) (blog post). 12 Aug. 2013. http://herbsutter.com/2013/08/12/gotw- 94-solution- aaa- style- almost- always- auto/ (also at Internet Archive 3 Dec. 2019 14:58:42 ).Google Scholar
- Herb Sutter. 2014. Unified Call Syntax. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4165. 4 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4165.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2017a. Consistent comparison. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0515R0. 5 Feb. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0515r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2017b. Merge Concurrency TS atomic pointers into C++20 working draft. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0673R0. 16 June 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0673r0. pdf (also at Internet Archive 22 April 2020 02:23:22 ).Google Scholar
- Herb Sutter. 2018a. Concepts in-place syntax. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0745R0. 11 Feb. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0745r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2018b. Zero-overhead deterministic exceptions: Throwing values. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0709R0. 2 May 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter. 2019. Lifetime safety: Preventing common dangling — version 1.1. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1179R1. 22 Nov. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1179r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter, Casey Carter, Gabriel Dos Reis, Eric Niebler, Bjarne Stroustrup, Andrew Sutton, and Ville Voutilainen. 2019. Rename concepts to standard_case for C++20, while we still can. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1754R0. 16 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter and Bjarne Stroustrup. 2003. A name for the null pointer: nullptr. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1488. 10 Sept. 2003. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1488.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Herb Sutter, Bjarne Stroustrup, and Gabriel Dos Reis. 2015. Structured bindings. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0144R0. 14 Oct. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0144r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Sutton. 2017. Working Draft, C++ extensions for Concepts. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4674. 19 June 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/n4674.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Sutton, Sam Goodrick, and Daveed Vandevoorde. 2019. Expansion statements. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1306R1. 21 Jan. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1306r1. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Sutton and Richard Smith. 2014. Folding expressions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4295. 7 Nov. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Sutton and Bjarne Stroustrup. 2011. Design of Concept Libraries for C++. In Software Language Engineering: 4th International Conference (SLE 2011) (3 July 2011–). Springer, Berlin and Heidelberg, Germany, 97–118. 978-3-642-28829-6 Google Scholar
Digital Library
- Andrew Sutton and Herb Sutter. 2018. Value-based Reflection. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0993R0. 2 April 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p0993r0.pdf (also at Internet Archive 22 April 2020 02:28:24 ).Google Scholar
- Andrew Sutton, Faisal Vali, and Daveed Vandevoorde. 2018. Scalable Reflection in C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1240R0. 8 Oct. 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/p1240r0. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Clang Team. 2014. Clang 3.5 Documentation: Modules. http://clang.llvm.org/docs/Modules.html (also at Internet Archive 5 Dec. 2014 14:06:59 ).Google Scholar
- Andrew Tomazos. 2015. Proposal of [[unused]], [[nodiscard]] and [[fallthrough]] attributes. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0068R0. 3 Sept. 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/p0068r0. pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Andrew Tomazos and Michael Spertus. 2014. Defaulted Comparison Using Reflection. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4239. 12 Oct. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4239.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Hubert Tong and Faisal Vali. 2016. Smart References through Delegation: An Alternative to N4477’s Operator Dot. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0352R0. 30 May 2016. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2016/p0352r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- James Touton and Mike Spertus. 2015. Template Argument Type Deduction. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4469. 10 April 2015. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2015/n4469.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- James Touton and Mike Spertus. 2016. Declaring non-type template arguments with auto. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0127R1. 4 March 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0127r1. html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Clay Trychta. 2016. Attributes for Likely and Unlikely Branches. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0479R0. 16 Oct. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0479r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- TSO Wikipedia 2020. Memory ordering. https://wikipedia.org/wiki/Memory_ordering Archived at https://web.archive. org/web/20200301003203/https://en.wikipedia.org/wiki/Memory_orderingGoogle Scholar
- Faisal Vali, Herb Sutter, and Dave Abrahams. 2012. Proposal for Generic (Polymorphic) Lambda Expressions. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3418. 21 Sept. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/ papers/2012/n3418.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Jan Christiaan van Winkel, Jose Daniel Garcia, Ville Voutilainen, Roger Orr, Michael Wong, and Sylvain Bonnal. 2017. Operating principles for evolving C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0559R0. 31 Jan. 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0559r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Daveed Vandevoorde. 2007. Modules in C++ (Revision 5). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2316. 19 June 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2316.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Daveed Vandevoorde. 2009. New wording for C++0x Lambdas (rev. 2). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2927. 15 July 2009. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Daveed Vandevoorde. 2012. Modules in C++ (Revision 6). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3347. 11 Jan. 2012. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2012/n3347.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Daveed Vandevoorde. 2017. Down with typename! ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0634. 5 March 2017. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0634r0.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- David Vandevoorde and Nicolai M. Josuttis. 2002. C++ Templates: The Complete Guide. Addison-Wesley, Reading, Massachussets, USA. 978-0201734843Google Scholar
Digital Library
- David Vandevoorde, Nicolai M. Josuttis, and Douglas Gregor. 2018. C++ Templates — The Complete Guide (Second Edition). Addison-Wesley, Boston, Massachussets, USA. 978-0-321-71412-1Google Scholar
- Todd L. Veldhuizen. 2003. C++ Templates are Turing Complete. Indiana University Computer Science. Archived at http://web.archive.org/web/20040919170502/http://osl.iu.edu/~tveldhui/papers/2003/turing.pdf Also at http://rtraba.files. wordpress.com/2015/05/cppturing.pdfGoogle Scholar
- Ville Voutilainen. 2016a. Discussion about std::thread and RAII. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0206R0. 27 Jan. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0206r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen. 2016b. Presentation at WG21 meeting in Jacksonville, Florida. Feb. 2016.Google Scholar
- Ville Voutilainen. 2016c. Why I want Concepts, and why I want them sooner rather than later. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0225R0. 5 Feb. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/ p0225r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen. 2019a. Adding a global contract assumption mode. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1710R0. 17 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1710r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen. 2019b. To boldly suggest an overall plan for C++23. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0592R4. 25 Nov. 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p0592r4.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen, Thomas Köppe, Andrew Sutton, Herb Sutter, Gabriel Dos Reis, Bjarne Stroustrup, Jason Merrill, Hubert Tong, Eric Niebler, Casey Carter, Tom Honermann, and Erich Keane. 2018. Yet another approach for constrained declarations. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1141R0. 23 June 2018. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2018/p1141r0.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen and Daveed Vandevoorde. 2016. constexpr if. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0128R1. 10 Feb. 2016. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2016/p0128r1.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Ville Voutilainen and Jonathan Wakely. 2018. Integrating feature-test macros into the C++ WD (rev. 2). ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0941R2. 8 June 2018. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2018/p0941r2.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- VStudio Wikipedia 2020. Microsoft Visual Studio. https://en.wikipedia.org/wiki/Microsoft_Visual_Studio (also at Internet Archive 10 April 2020 22:12:27 ).Google Scholar
- Philip Wadler and Stephen Blott. 1989. How to Make Ad-Hoc Polymorphism Less Ad Hoc. In Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Austin, Texas, USA, Jan.) (POPL ’89). Association for Computing Machinery, New York, NY, USA, 60–76. 0897912942 Google Scholar
Digital Library
- Jonathan Wakely. 2018. Working Draft, C++ Extensions for Networking. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N4734. 4 April 2018. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2018/n4734.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Wandbox 2016–2020. Wandbox, a Japanese online environment for compiling and running C++ using a variety of compilers (website). https://wandbox.org/ (also at Internet Archive 2 Jan. 2020 21:23:50 ).Google Scholar
- Daniel Wasserrab, Tobias Nipkow, Gregor Snelting, and Frank Tip. 2006. An Operational Semantics and Type Safety Proof for Multiple Inheritance in C++. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Portland, Oregon, USA, Oct.) (OOPSLA ’06). Association for Computing Machinery, New York, NY, USA, 345–362. 1595933484 Google Scholar
Digital Library
- WebAssembly 2017–2020. WebAssembly (Wasm), a portable binary code format primarily for executing in browsers (website). https://webassembly.org/ (also at Internet Archive 1 April 2020 05:02:38 ). WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.Google Scholar
- WG14. 2007. Thread Cancellation. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N2455. 11 Oct. 2007. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2007/n2455.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- WG21. 1989–2020. C++ Standards Committee Papers (website). http://open- std.org/jtc1/sc22/wg21/docs/papers/ (also at Internet Archive 4 Sept. 2019 02:05:46 ). Links to all official papers for ISO/IEC JTC1/SC2/WG21.Google Scholar
- Jeremiah Willcock, Jaakko Järvi, Doug Gregor, Bjarne Stroustrup, and Andrew Lumsdaine. 2006. Lambda expressions and closures for C++. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N1968. 26 Feb. 2006. http://www.openstd.org/jtc1/sc22/wg21/docs/papers/2006/n1968.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Anthony Williams. 2012. C++ Concurrency in Action – Practical Multithreading. Manning Publishing, Shelter Island, NY, USA. 978-1933988771Google Scholar
- Anthony Williams. 2018. C++ Concurrency in Action – Practical Multithreading (2nd edition). Manning Publishing, Shelter Island, NY, USA. 978-1617294693Google Scholar
- Jing Yang, Gogul Balakrishnan, Naoto Maeda, Franjo Ivančić, Aarti Gupta, Nishant Sinha, Sriram Sankaranarayanan, and Naveen Sharma. 2012. Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis. In Compiler Construction: 21st International Conference (CC 2012) (Tallinn, Estonia), Michael O’Boyle (Ed.). Springer, Berlin and Heidelberg, Germany, 144–164. 978-3-642-28651-3 Google Scholar
Digital Library
- Jeffrey Yasskin. 2014. String_view: a non-owning reference to a string, revision 7. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper N3921. 14 Feb. 2014. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Mani Zandifar, Nathan Thomas, Nancy M. Amato, and Lawrence Rauchwerger. 2014. The STAPL Skeleton Framework. In The 27th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2014) (Hillsboro, Oregon, USA, 17 Sept.), James Brodman and Peng Tu (Eds.). Springer International Publishing, Cham, Switzerland, 176–190. 978-3-319-17472-3 Google Scholar
Cross Ref
- Victor Zverovich. 2019. Text Formatting. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P0645R9. 16 June 2019. http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r9.html (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
- Victor Zverovich, Daniela Engert, and Howard E. Hinnant. 2019. Integration of chrono with text formatting. ISO/IEC JTC1/SC2/WG21: C++ Standards Committee paper P1361R1. 14 June 2019. http://www.open- std.org/jtc1/sc22/wg21/ docs/papers/2019/p1361r1.pdf (also at Internet Archive 4 Sept. 2019 02:05:46 ).Google Scholar
Index Terms
Thriving in a crowded and changing world: C++ 2006–2020
Recommendations
Evolving a language in and for the real world: C++ 1991-2006
HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languagesThis paper outlines the history of the C++ programming language from the early days of its ISO standardization (1991), through the 1998 ISO standard, to the later stages of the C++0x revision of that standard (2006). The emphasis is on the ideals, ...
A Lightweight C++ Interface to MPI
PDP '12: Proceedings of the 2012 20th Euromicro International Conference on Parallel, Distributed and Network-based ProcessingThe Message Passing Interface (MPI) provides bindings for the three programming languages commonly used in High Performance Computing (HPC): C, C++ and Fortran. Unfortunately, MPI supports only the lowest common denominator of the three languages, ...
A comparative evaluation of generic programming in Java and C++
Generic programming has been defined as 'programming with concepts' where a concept refers to a family of abstractions. The criteria for generic programming include independence of collections from data types, independence of algorithms that operate on ...






Comments