Technically speaking, the use of “::” in C++ is to resolve scope within a class, namespace or enum. It has nothing to do with memory layout. For example, if you have a namespace with a class inside it, you would use the scoping operator to access it. But the class within the namespace has no actual storage anywhere. The same goes for an enum. The definition of an enum has no physical storage. But you can use the scope operator to “tunnel” down into it. Similarly, you can have nested types within classes which are strictly related to defining types, but they have no physical storage at runtime.
The “::” operator has nothing to do with storage. What you specify may have storage, but that’s not determined by the scope operator itself.
Also, though it doesn’t quite say that and could be interpreted the proper way, the table is laid out in such a way that it could be inferred that the “.” operator is used for stack memory and the “->” for dynamic memory, but there is no correlation. A reference or pointer could refer or point to either type of memory.