struct(functor)内のあるタイプがtypedef
のstructのローカルスコープである場合は、typedef
です。2つの構造体(ファンクタ)のtypedefの範囲を理解する
次の例では、typdef'ed fooをint
とdouble
の2つの別々のファンクタにするとします。この例は正しいですか?
template <typename T>
struct firstfunctor
{
typedef int foo;
foo operator()(const foo& a, const foo& b)
{
return /*whatever*/
}
};
template <typename T>
struct secondfunctor
{
typedef double foo;
foo operator()(const foo& a, const foo& b)
{
return /*whatever*/
}
};
+1、*メンバータイプのエイリアス*ですか? – Pubby
@Pubby:多分。おそらくメンバのタイプ*名前*は良い言葉です...また、 'typename firstfunctor :: foo'と言わなければならないことを思い出させます:-) –