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>