I zostały patrząc na Boost kodu źródłowego biblioteki, a ja zauważyłem, że często nie są to pojedyncze znaki funta bez żadnych dyrektyw preprocesora dołączonych do nich. Przeczytałem podręcznik preprocesora GCC i przewodnik specyfikacji i nie mogę znaleźć nic na ten temat.
(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
W linii 4 po znaku funta nie ma nic. Jaki to ma wpływ? Czy jest to zdefiniowane w specyfikacji preprocesora C (CPP)?
Ponieważ Boost jest biblioteką wieloplatformową, zakładam, że każdy CPP powinien ją poprawnie przeanalizować. Jaki byłby skutek / skutki uboczne losowych znaków funta / krzyżyka w całym kodzie?