I have this typedef in Ogre3D:
namespace Ogre {
typedef vector<String>::type StringVector;
...
}
What is the "::" operator for? Does it do anything? As it is, I think this is a vector of strings - a StringVector. Correct?
I have this typedef in Ogre3D:
namespace Ogre {
typedef vector<String>::type StringVector;
...
}
What is the "::" operator for? Does it do anything? As it is, I think this is a vector of strings - a StringVector. Correct?
Defines a type StringVector
which is vector<String>::type
.
It seems like type
is a type, defined inside vector
(which is template class
)
::
is called "scope resolution operator".
type
is some entity (obviously, a type) declared inside vector
class. ::
operator is used to reference element type
from vector
namespace.
P. S. By saying "namespace" I don't only mean the actual C++ namespace
feature, since classes are also similar to namespaces in that they can have nested definitions.