Heute habe ich festgestellt, dass es möglich ist, eine Funktion in einem Header mit einer Signatur zu deklarieren und in der Quelldatei mit einer anderen (ähnlichen) Signatur zu implementieren. Zum Beispiel so:Definieren einer Funktion mit unterschiedlicher Signatur
// 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;
}
Ist das erlaubt? Oder ist das die Erweiterung des Compilers (ich verwende g ++ 4.3.0)?
BEARBEITEN Ich kompiliere mit pedantischer und maximal möglicher Warnstufe, und ich bekomme immer noch keine Warnung oder einen Fehler.
Haben Sie die gelesen Standard? – Abyx