2014-12-15 16 views
9

Mi piacerebbe creare un puntatore a funzione come questa:Come si crea un puntatore a funzione no-cut?

void(*function_pointer)()noexcept; 

Ma, questo non funziona. Sembra che un identificatore di eccezione in una dichiarazione di funzione non sia valido. Ci deve essere un modo per farlo però. Giusto?

Questo è stato collegato a una domanda che non è la stessa di questo. Qui sto chiedendo come creare un puntatore a funzione con un identificatore noexcept. Questo non è stato chiesto o risposto nella domanda "noext specificatori nella funzione typedef".

+3

In che modo non funziona? Compilare l'errore? Quale compilatore? Che errore? –

+2

http://goo.gl/N9wyLv - sembra funzionare come previsto. – Mat

risposta

7

[except.spec]/2:

Un specifica delle eccezioni devono presentarsi in una funzione dichiaratore per un tipo di funzione, puntatore al tipo funzionano, riferimento alla funzione tipo, o puntatore al tipo di funzione membro che è il tipo di primo livello di una dichiarazione o definizione, o su un tipo simile che appare come un parametro o un tipo di ritorno in un dichiaratore di funzione.

Quindi la vostra dichiarazione è davvero ben fatta e Clang compiles it.

Presumibilmente il tuo compilatore non è aggiornato.

Problemi correlati