Table of Contents
| 1: Datum, Variable, Expression, Value in C++ or Any Programming Language |
| Regrettably, those terms are prevalently being sloppily used, and such usage has ruined many descriptions that could have been intelligible otherwise. |
| 2: Reference in C++: No! Not "an alias of a variable"! |
| "Reference is an alias of a variable." is a too-sloppy explanation and is untrue and missing the point of why reference is meaningful. |
| 3: "Lvalue", "Rvalue" in C++? They Are Not Values! |
| They are misnomers, and prevalent explanations on them do not make sense, because they explain the concepts as values. |
| 4: "Move Semantics", "Xvalue", "Prvalue", "Glvalue"? Misnomers |
| They are all misnomers, as "lvalue" and "rvalue" are, and any correct understanding begins only when they are understood as misnomers. |
| 5: 'this' Is Not Any Pointer or Any Variable in C++ |
| Why is 'this' a so-called "rvalue"? Because it is not any pointer or any variable. |
| 6: Constant Method in C++: Half of the Explanations Are Wrong |
| The definition of constant method is NOT "a method that does not change the state of the object". The mix-up there is the cause of some confusions. |
| 7: Creating a C++ Standard-Container-Compatible Custom Container |
| The standard 'map', 'list', 'set', 'vector', 'queue', 'stack', and 'priority_queue' are discouraged to be extended. Well . . ., so? |
| 8: A C++ Standard-'map'-Compatible Elements-Order-Preserved Map |
| There is no standard map that preserves the elements order in which the elements are put into it. Here is one that is compatible with '::std::map'. |
| 9: C++ Template: Instantiation Explicit or Implicit, Inlining |
| An "unresolved external symbol" error? No such thing as a "template class or function". Let me distinguish between instantiation and inlining. |
| 10: Dealing with Some Peculiarities of Visual C++ |
| The project is built fine by GCC, but not by Visual C++? Some such cases will be dealt with here. |
| 11: How to Create a Minimal Systemd Daemon in C++ |
| Most of the most-promoted documents begin to "fork", "setsid", etc., which are about SysV daemons, while a systemd daemon can be created more easily. |
| 12: An "expected primary-expression before '>' token" GCC Compile Error? |
| The error message seems not correct, and the underlying rule seems not reasonable. . . . Anyway, let me solve the problem. |
| 13: A C++ Objects Pipe, Which Conveys Objects Serially |
| It has to be serially because otherwise, the memory would be used up. A C++ for-objects equivalent of 'java.io.PipedWriter' + 'java.io.PipedReader'. |
| 14: "C2131: expression did not evaluate to a constant" Visual C++ Compile Error? |
| The error against using a class static 'const' field as an array size. The new (arguably) right way to define any class static integral field is here. |
| 15: How to Optimally Handle Date and Time in C++ |
| What container should be used? 'time_t' and 'tm' still? Or '::std::chrono::time_point'? The characteristics of each datum type should be known. |
| 16: A Thorough Guide to Dealing with 'const' in C++ |
| A shallow understanding like ''const' makes it constant' does not work. 'const' has different meanings. |
| 17: Windows Clipboard with C++: in Multi-Formats |
| The Win32 API is used. All the formats including 'Bitmap' and 'EnhancedMetafile' are supported. |
| 18: The Intent and the Usage of Header Files in C++ |
| Why does C++ require header files, which may seem to be annoying to create and maintain, while Java, etc. do not? How should I use them, if I should? |
| 19: An "unable to match function definition to an existing declaration" Visual C++ Error? |
| Not with GCC, but with Visual C++. It may concern 'typedef', and if so, it will be solved this way. |
| 20: C++ 'inline': Unreliable Behavior Like Ignored Modifications |
| C++ 'inline' is abhorrent, not because it does not guarantee to really do inlining, but because it does not even pretend to be doing inlining. |
| 21: "no arguments to ~ that depend on a template parameter, so a declaration of ~ must be available" C++ Error? |
| The error is probably because of "two-stage name lookup", which seems unwise to have been introduced, but has to be learned anyway. |
| 22: Export Symbols From a DLL for Visual C++ |
| Otherwise, the symbols would be invisible from the outside of the DLL. How to control '__declspec (dllexport)' and '__declspec (dllimport)'. |
| 23: Explicitly Instantiate Constructor Template for Visual C++ |
| An expression that is meant to explicitly instantiate a class constructor template causes some enigmatic errors for Visual C++, although fine for GCC. |
| 24: 'std::codecvt<char16_t,char,struct _Mbstatet> Unresolved Error |
| A Visual C++ since-2015 bug, which Microsoft had refused to fix (until 2019?), based on a unconvincing reason. How to end-run the problem. |
| 25: "C2131: expression did not evaluate to a constant" Visual C++ Error? |
| The error message is rather misleading. The behavior is compliant with the C++ standard certainly, but is inconvenient anyway. GCC allows the code. |
| The table of contents of this series | The next article in this series>