C++ Notes: Revision History

Back to C++ Notes

2007-08-23 In Lecture 10, the install_new_handler destructor didn't have a '~' in front of it.
2007-01-31 In Lecture 10, add exception declarations to the examples and speak more about exception declarations in the narrative.
2006-05-22 In Lecture 8, simplify the streamio example, and call them "use cases" rather than "test runs". The simplification induced identical operation for both Borland 5.5 and g++ 3.4.1. In the previous version of the example, when seekg(streampos) was used in conjunction with tellg() to rewind to just before the second number, Borland 5.5 reset the state from eof to good which it doesn't do in the current version of the example. The consistency of the two compilers is an unexpected plus of the simplfication, so comparing and contrasting them is no longer necessary. In Section 8.4, try to clarify the observation on why tell/seek functions not found at the ios level. Add another observation on the necessity of clearing the stream state when rewinding after reading to the end of a stream. In Section 8.3, correct typo so it makes a comment about "g" suffix rather than the irrelevant (for this section) "p" suffix.
2006-05-18 In Lecture 8, emphasize the implications of stateful I/O in C++ and the different treatment of eofbit and failbit. Explain the dashed lines in the stream class tree. Add the streamio example.
2006-05-15 In the Contents, update the Visual C++ link.
2006-04-28 In sort.cpp, go back to using strcmp rather than strncmp. Seems simpler, and can't create the kind of problems strcpy can. In 1, add Dylan to the list of object-oriented languages and alphabetize them. Mention Fortran 2003 rather than Fortran 90, and Perl and Python too.
2006-04-26 Redo employ1.cpp and employ2.cpp to replace char * references with string. Redo swap2.cpp to use an int array rather than a char array. Redo sort.cpp to use strncmp rather than strcmp, and make it more verbose. In 9, update link to LTCmp(). In 8, update a few more types.
2006-04-25 In 8, replace most references to ios to ios_base. Remove references to stdiobuf though one wonders if it's still possible to mix C and C++ I/O for arbitrary files. Also noreplace option for opening files has apparently been discarded. The manipulator discussion has been heavily revised.
2006-04-24 In 10, correct a couple typos, give the coding precautions their own section and add a section listing the standard exceptions. In 10.4, mention auto_ptr in the first item.
2006-04-21 In 2, redo the discussion of dynamic memory allocation and get rid of that sleazy example. Introduce a definition of memory leak, and add it to the Glossary. In 6, exclude delete[] from the list of operators that can't be overloaded. In the Contents, acknowledge Sudershan Taneja for benefits received from conversations with him.
2006-04-14 Add to-do list to the bottom of this file.
2006-04-13 In 8, 9, 10 and Examples, reduce size of ++ in C++. Put a note in 8 that the material needs revisions to bring it up to date with the ANSI C++ standard.
2006-04-12 In 3, 4, 5, 6 and 7, reduce size of ++ in C++. In 3.4, tighten up descriptions of construction and destruction in various situations with help from 10.4.3 from Stroupstrup's 3rd edition. In 4.1, call them non-member rather than "global" functions and delete a couple remarks that don't make sense to me anymore. Add an introductory remark to the Glossary.
2006-04-11 Shrink the ++ here and in Contents. In 1, update the list of object-oriented languages. In 2, update note on eof() and put std prefix on EOF and a few other places. Note STL alternatives to realloc(). Implement swap example and insert into Examples. Existing swap example in 9 becomes swap2. In 9, change sort2 to sort and make corresponding change to Examples.
2006-04-10 Complete updating examples with Lectures 8, 9 and 10. In 9, use term "specialization" rather than non-standard "escape". In 1 and 2, shrink the "++" in C++ everywhere, and indicate include files and appropriate prefix notation when standard libraries are used.
2006-04-07 Continue updating examples with Lectures 5, 6 and 7.
2006-04-06 Continue updating examples with Lecture 4. In Lecture 3, try to characterize difference in machine code for the two date examples a little better.
2006-04-04 Begin updating examples so they compile on modern compilers. As they are updated, collect links to them on the new Examples page. Link to free Borland and Microsoft compilers in Table of Contents.
2006-03-07 In Table of Contents, set out a possible curriculum which would incorporate the Standard Template Library. Mention the Glossary when speaking of the definitions.
2006-03-06 In Table of Contents, "Programming" got left out of the title of the first lecture. Add a "description" meta tag there, and a subject to the "mailto" tag. Acknowledge the neglect of the Standard Template Library in the notes, and mention new editions of Stroustrup's book. In Lecture 10, correct a grammar error, add "description" meta tag. Other minor edits. Upper-case doctype tag for all three of these pages. Validator doesn't pick up on it otherwise. Switch to ISO 8601 date format for this revision history.
2004-11-22 Add Glossary. In Lecture 3, describe construction and destruction of base components and member objects a little more clearly. Fix HTML (no block-level elements allowed in paragraphs).
2004-03-03 Reposition back link and add new one in revision history.
2004-01-06 Explain the format of the tables where definitions are presented and fix the tables' alignment. Put lecture number in browser title. Make it easier to jump between lectures.
2003-11-18 Add meta tag specifying charset to satisfy new W3C validator requirements.
2001-08-16 Add unget and readsome member functions to istream and substitute streamsize for int in lec08.htm.
2000-08-14 Polish HTML. Add put member function to ostream in lec08.htm.
1999-06-14 Revised Employee examples to plug some destruction logic holes and use nicer naming convention. Revised references to these classes in lec07.htm.
1999-05-12 Revised two for loops in employee example code for lecture 7 to declare iterator variable outside loop so they work under latest C++ compilers.
1999-04-21 Started revision file. lec08.htm: Fixed header between sections 8.5 and 8.6 which became new 8.6. Renumbered 8.6 ... to 8.7 ... Put a list of relevant header files at the beginning of the lecture. Removed angular brackets about a couple citations of header files which made them invisible in html.
To do
  • There may still be some details that need fixing in 8.

Back to C++ Notes

Valid HTML 4.0!