Hoy descubrí que es posible declarar una función en un encabezado con una firma e implementarla en el archivo fuente con una firma diferente (similar). Por ejemplo, así:Definición de una función con firma diferente
// THE HEADER example.hpp
#ifndef EXAMPLE_HPP
#define EXAMPLE_HPP
int foo(const int v);
#endif
// THE SOURCE FILE example.cpp
#include "example.hpp"
int foo(int v) // missing const
{
return ++v;
}
¿Esto está permitido? ¿O es esta la extensión del compilador (estoy usando g ++ 4.3.0)?
EDITAR Estoy compilando con el nivel de alerta pedante y máxima posible, y todavía no estoy recibiendo una advertencia o un error.
¿Leyó el ¿estándar? – Abyx