Ich habe mir den Quellcode der Boost- Bibliotheken angesehen und festgestellt, dass häufig einzelne Pfundzeichen ohne Präprozessoranweisungen vorhanden sind. Ich habe das Handbuch und die Spezifikationsanleitung des GCC-Präprozessors gelesen und kann nichts darüber finden.
(1) #ifndef BOOST_CONFIG_HPP
(2) # include <boost/config.hpp>
(3) #endif
(4) #
(5) #if defined(BOOST_HAS_PRAGMA_ONCE)
(6) # pragma once
(7) #endif
In Zeile 4 steht nach dem Pfundzeichen nichts mehr. Welchen Effekt hat das? Ist es in der C-Präprozessor-Spezifikation (CPP) definiert?
Da Boost eine plattformübergreifende Bibliothek ist, würde ich davon ausgehen, dass jeder CPP sie korrekt analysieren sollte. Was wären die Auswirkungen / Nebenwirkungen von zufälligen Pfund- / Hash-Zeichen im gesamten Code?