私はauto
関数の戻り値型を取得しようとしています。 This works:クラススコープにstatic auto
機能の戻り値の型を取得:クラスの静的な自動関数の型をクラススコープ内で推測できないのはなぜですか?
auto foo(int bar)
{
return 0;
}
typedef std::result_of<decltype(foo)> foo_t;
グレート、ここでは、次のステップです。 This also works:
struct Foo
{
static auto foo(int bar)
{
return 0;
}
};
typedef std::result_of<decltype(Foo::foo)> foo_t;
しかしthis doesn't work:、クランは「関数 'と言う:
struct Foo
{
static auto foo(int bar)
{
return 0;
}
typedef std::result_of<decltype(Foo::foo)> foo_t;
};
GCCは、 " '自動' の控除前の使用 '静的自動車はFoo :: fooの(int型)' エラー" と言います推測された戻り値の型を持つfooは定義される前に使用できません "。どうして?
あなたは 'std :: result_of :: type'と書いたかったと思いますか? –
@ O'Neil公正な機会がありますが、私は目に見える形でその仕組みが分かりません... – zneak