eerorika

232,697
reputation
12
197
326

C++ is a wonderful language. A collection of curious details:

  • A full-expression is not necessarily an expression at all.
  • void* is not a pointer-to-object but it is an object pointer.
  • Member pointers are not "pointers".
  • Default initialisation may leave the object uninitialised.
  • Rvalue reference variables are lvalues.
  • std::move doesn't move anything.
  • Function arguments cannot be arrays, but you can declare arguments to be arrays in which case they are "adjusted" to not be arrays.