Criticism[edit]
Main article: Criticism of C++
Despite its widespread adoption, many programmers have criticized the C++ language, including Linus Torvalds,[58] Richard Stallman,[59] and Ken Thompson.[60] Issues include a lack of reflection or garbage collection, slow compilation times, and verbose error messages, particularly from template metaprogramming.[61] Because C++ introduces an additional memory footprint on programs due to internally generated vtables and constructors,[citation needed] programmers such as Torvalds prefer C over C++ for low-level, performance-critical and portable system software.[58]
See also[edit]
- Bjarne Stroustrup
- C++ Standard Library
- Comparison of programming languages
- International Organization for Standardization
- List of C++ compilers
- Outline of C++
- The C++ Programming Language
References[edit]
- ^ Stroustrup, Bjarne (1997). "1". The C++ Programming Language (Third ed.). ISBN 0-201-88954-4. OCLC 59193992.
- ^ Naugler, David (May 2007). "C# 2.0 for C++ and Java programmer: conference workshop". Journal of Computing Sciences in Colleges 22 (5).
Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.
- ^ "Chapel spec (Acknowledgements)" (PDF). Cray Inc. 2015-10-01. Retrieved 2016-01-14.
- ^ a b c Stroustrup, B. (6 May 2014). "Lecture:The essence of C++. University of Edinburgh.". Retrieved 12 June 2015.
- ^ Stroustrup, Bjarne (17 February 2014). "C++ Applications". stroustrup.com. Retrieved5 May 2014.
- ^ a b c "ISO/IEC 14882:2011". International Organization for Standardization.
- ^ a b Stroustrup, Bjarne (7 March 2010). "Bjarne Stroustrup's FAQ: When was C++ invented?". stroustrup.com. Retrieved 16 September 2010.
- ^ a b Stroustrup, Bjarne. "Evolving a language in and for the real world: C++ 1991-2006"(PDF).
- ^ a b c Stroustrup, Bjarne. "A History of C ++ : 1979− 1991" (PDF).
- ^ Stroustrup, Bjarne. "The C++ Programming Language" (First ed.). Retrieved16 September 2010.
- ^ Stroustrup, Bjarne. "The C++ Programming Language" (Second ed.). Retrieved16 September 2010.
- ^ "Bjarne Stroustrup's FAQ – Where did the name "C++" come from?". Retrieved16 January 2008.
- ^ "C For C++ Programmers". Northeastern University. Retrieved 7 September 2015.
- ^ "ISO/IEC 14882:1998". International Organization for Standardization.
- ^ "ISO/IEC 14882:2003". International Organization for Standardization.
- ^ "ISO/IEC 14882:2014". International Organization for Standardization.
- ^ "We have an international standard: C++0x is unanimously approved". Sutter's Mill.
- ^ a b "The Future of C++".
- ^ "We have C++14! : Standard C++".
- ^ Recent milestones: C++17 nearly feature-complete, second round of TSes now under development
- ^ "ISO/IEC TR 18015:2006". International Organization for Standardization.
- ^ "ISO/IEC TR 19768:2007". International Organization for Standardization.
- ^ "ISO/IEC TR 29124:2010". International Organization for Standardization.
- ^ "ISO/IEC TR 24733:2011". International Organization for Standardization.
- ^ "ISO/IEC TS 18822:2015". International Organization for Standardization.
- ^ "ISO/IEC TS 19570:2015". International Organization for Standardization.
- ^ "ISO/IEC TS 19841:2015". International Organization for Standardization.
- ^ "ISO/IEC TS 19568:2015". International Organization for Standardization.
- ^ "ISO/IEC TS 19217:2015". International Organization for Standardization.
- ^ See a list at http://en.cppreference.com/w/cpp/experimental Visited 16 January 2016.
- ^ B. Stroustrup (interviewed by Sergio De Simone) (30 April 2015). "Stroustrup: Thoughts on C++17 - An Interview". Retrieved 8 July 2015.
- ^ Stroustrup, Bjarne (2000). The C++ Programming Language (Special ed.). Addison-Wesley. p. 46. ISBN 0-201-70073-5.
- ^ Stroustrup, Bjarne. "Open issues for The C++ Programming Language (3rd Edition)". This code is copied directly from Bjarne Stroustrup's errata page (p. 633). He addresses the use of
'\n'rather thanstd::endl. Also see Can I write "void main()"? for an explanation of the implicitreturn 0;in themainfunction. This implicit return is notavailable in other functions. - ^ ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages – C++ §6.6.3 The return statement [stmt.return] para. 2
- ^ ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages – C++ §3.6.1 Main function [basic.start.main] para. 5
- ^ ISO/IEC. Programming Languages – C++11 Draft (n3797) §3.7 Storage duration [basic.stc]
- ^ ISO/IEC. Programming Languages – C++11 Draft (n3797) §3.7.1 Static Storage duration [basic.stc.static]
- ^ ISO/IEC. Programming Languages – C++11 Draft (n3797) §3.7.2 Thread Storage duration [basic.stc.thread]
- ^ ISO/IEC. Programming Languages – C++11 Draft (n3797) §3.7.3 Automatic Storage duration [basic.stc.auto]
- ^ ISO/IEC. Programming Languages – C++11 Draft (n3797) §3.7.4 Dynamic Storage duration basic.stc.dynamic
- ^ a b "Nobody Understands C++: Part 5: Template Code Bloat".http://blog.emptycrate.com/: EmptyCrate Software. Travel. Stuff. 6 May 2008. Retrieved8 March 2010.
On occasion you will read or hear someone talking about C++ templates causing code bloat. I was thinking about it the other day and thought to myself, "self, if the code does exactly the same thing then the compiled code cannot really be any bigger, can it?" [...] And what about compiled code size? Each were compiled with the command g++ <filename>.cpp -O3. Non-template version: 8140 bytes, template version: 8028 bytes!
- ^ Sutter, Herb; Alexandrescu, Andrei (2004). C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley.
- ^ Henricson, Mats; Nyquist, Erik (1997). Industrial Strength C++. Prentice Hall. ISBN 0-13-120965-5.
- ^ Stroustrup, Bjarne (2000). The C++ Programming Language (Special ed.). Addison-Wesley. p. 310. ISBN 0-201-70073-5.
A virtual member function is sometimes called amethod.
- ^ Mycroft, Alan (2013). "C and C++ Exceptions | Templates" (PDF). Cambridge Computer Laboratory - Course Materials 2013-14. Retrieved July 2014. delete character in
|title=at position 1 (help) - ^ Stroustrup, Bjarne (2013). The C++ Programming Language. Addison Wesley. p. 345.ISBN 9780321563842.
- ^ Stroustrup, Bjarne (2013). The C++ Programming Language. Addison Wesley. pp. 363–365. ISBN 9780321563842.
- ^ Stroustrup, Bjarne (2013). The C++ Programming Language. Addison Wesley. pp. 345, 363. ISBN 9780321563842.
- ^ Stroustrup, Bjarne (2013). The C++ Programming Language. Addison Wesley. pp. 344, 370. ISBN 9780321563842.
- ^ Stroustrup, Bjarne (2013). The C++ Programming Language. Addison Wesley. p. 349.ISBN 9780321563842.
- ^ Graziano Lo Russo (2008). "An Interview with A. Stepanov". stlport.org. Retrieved2015-10-08.
- ^ "C++ ABI Summary". 20 March 2001. Retrieved 30 May 2006.
- ^ "Bjarne Stroustrup's FAQ – Is C a subset of C++?". Retrieved 5 May 2014.
- ^ "C9X – The New C Standard". Retrieved 27 December 2008.
- ^ "C++0x Support in GCC". Retrieved 12 October 2010.
- ^ "C++0x Core Language Features In VC10: The Table". Retrieved 12 October 2010.
- ^ "Clang - C++98, C++11, and C++14 Status". Clang.llvm.org. 12 May 2013. Retrieved10 June 2013.
- ^ a b "Re: [RFC] Convert builin-mailinfo.c to use The Better String Library" (Mailing list). 6 September 2007. Retrieved 31 March 2015.
- ^ "Re: Efforts to attract more users?" (Mailing list). 12 July 2010. Retrieved 31 March2015.
- ^ Andrew Binstock (18 May 2011). "Dr. Dobb's: Interview with Ken Thompson". Retrieved7 February 2014.
- ^ Kreinin, Yossi (October 13, 2009). "Defective C++". Retrieved February 3, 2016.

EmoticonEmoticon