Aujourd'hui, j'ai découvert qu'il est possible de déclarer une fonction dans un en-tête avec une signature et de l'implémenter dans le fichier source avec une signature (similaire) différente. Par exemple, comme ceci:Définition d'une fonction avec une signature différente
// 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;
}
Est-ce autorisé? Ou est-ce l'extension du compilateur (j'utilise g ++ 4.3.0)? Je compile avec le niveau d'avertissement pédant et maximum possible, et je n'obtiens toujours pas d'avertissement ou d'erreur.
Avez-vous lu le la norme? – Abyx