I'm new at programming overall.
I've tried reading the official standard for the language, but couldn't find any answers to my question.
so I need to understand what is the main differences between void type and other incomplete types in C++. For example: are there places in the language (or code) where we can use void but not other incomplete types, or vice versa? Or is void just like other incomplete types in every way?
There is indeed a very subtle difference between void and another incomplete type:
You can't have a reference to a void type:
C++ Standard quotes:
It is possible to convert any expression to void, which is obviously not the case for other incomplete types:
This is documented in the C++ Standard: