私は Ogre3D にこの typedef を持っています:
namespace Ogre {
typedef vector<String>::type StringVector;
...
}
「::」演算子とは何ですか? それは何かをしますか?そのままでは、これは文字列のベクトル、つまり StringVector だと思います。正しい?
StringVector
であるタイプを定義しvector<String>::type
ます。
type
内部で定義されたタイプのようですvector
(これはですtemplate class
)
::
「スコープ解決演算子」と呼ばれます。
type
vector
クラス内で宣言されたエンティティ(明らかに型)です。::
演算子は、名前空間type
から要素を参照するために使用されます。vector
PS 「名前空間」と言うのは、実際の C++namespace
機能だけを意味しているわけではありません。クラスは、ネストされた定義を持つことができるという点で名前空間にも似ているからです。