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.
