Я изучал исходный код Boost, и я заметил, что часто есть одиночные значки фунта без каких-либо директив препроцессора, прикрепленных к ним. Я прочитал руководство и инструкцию по препроцессорам GCC и не могу найти ничего об этом.
(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
В строке 4 после знака фунта ничего нет. Какое влияние это имеет? Определяется ли это в спецификации препроцессора C (CPP)?
Поскольку Boost - это кросс-платформенная библиотека, я бы предположил, что любой CPP должен правильно ее разобрать. Каким будет эффект/побочные эффекты наличия случайных значков фунта/хэша в течение всего кода?