Ho ottenuto l'errore di compilazione sotto il codice.decltype come un tipo di ritorno nella funzione membro della classe
struct B{
double operator()(){
return 1.0;
}
};
struct A {
auto func() -> decltype(b())
{
return b();
}
B b;
};
Tuttavia, se riorganizzare il A
, si compila.
gcc 4.8 ha dichiarato che "b" non è stato dichiarato in questo ambito.
struct A {
B b;
auto func() -> decltype(b())
{
return b();
}
};
Quindi, cosa c'è di sbagliato con il primo ??
Si prega di essere più specifico in quello che stai cercando di chiedere. "È valido?" potrebbe essere un po 'vago per la comunità per comprendere appieno ciò che stai chiedendo. –
@JeffWolski: Sì, sono d'accordo, quindi ho modificato la dicitura :) – Sungmin