Gli specificatori nox sono accettati nella funzione typedef?specificatori noexcept in typedef di funzione
come in:
typedef void (*fptr)() noexcept;
Intuitivamente, prescrittori noexcept sembrano avere un senso dal momento che permetterebbero alcune ottimizzazioni al fianco del chiamante.
Ho ottenuto una risposta mista da gcc 4.6.1.
typedef void (*fptr)() noexcept;
risultati in: errore: ‘fptr’ dichiarate con una specifica eccezione
ma:
template<void (*FPtr)() noexcept>
struct A{};
compila senza preavviso.
Grazie. Questo probabilmente rende accettabile la clausola noexcept nell'argomento template sopra un bug in gcc? – mirk
Io non la penso così. [temp.param]/p4 dice che i parametri non di tipo possono essere un puntatore alla funzione e non vedo alcuna menzione delle specifiche di eccezione in quell'area. E [except.spec]/p2 dice specificatamente che una caratteristica di eccezione può apparire su un puntatore per funzionare. –
Grazie ancora. Sono un po 'perplesso da questo risultato, ma non ha senso discutere con lo standard. – mirk