¿Están aceptados los especificadores en la función typedefs?noexcept especificadores en la función typedefs
como en:
typedef void (*fptr)() noexcept;
Intuitivamente, especificadores noexcept parece tener sentido, ya que permitirían algunas optimizaciones en el lado de la persona que llama.
Recibí una respuesta mixta de gcc 4.6.1.
typedef void (*fptr)() noexcept;
resultados en: de error: ‘fptr’ declaran con una especificación de excepción
pero:
template<void (*FPtr)() noexcept>
struct A{};
compila sin previo aviso.
Gracias. Esto probablemente hace que se acepte la cláusula noexcept en el argumento de la plantilla sobre un error en gcc. – mirk
No lo creo. [temp.param]/p4 dice que los parámetros que no son de tipo pueden ser un puntero a la función y no veo ninguna mención de las especificaciones de excepción en esa área. Y [except.spec]/p2 especifica que una especificación de excepción puede aparecer en un puntero para funcionar. –
Gracias de nuevo. Estoy un poco desconcertado con este resultado, pero no tiene sentido discutir con el estándar. – mirk