Я переглядав вихідний код бібліотек 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 повинна правильно її розбирати. Який ефект / побічні ефекти матиме у випадку випадкових знаків фунта / хешу у всьому коді?