Estive observando o código-fonte das bibliotecas Boost e notei que muitas vezes existem sinais de libra única sem nenhuma diretiva de pré-processador anexada a elas. Li o manual do pré-processador do GCC e o guia de especificações e não consigo encontrar nada sobre isso.
(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
Na linha 4, não há nada após o sinal de libra. Que efeito isso tem? É definido na especificação do pré-processador C (CPP)?
Como o Boost é uma biblioteca de plataforma cruzada, eu assumiria que qualquer CPP deve analisá-lo corretamente. Qual seria o efeito / efeitos colaterais de ter sinais aleatórios de libra / hash em todo o código?