Saya telah melihat kode sumber perpustakaan Boost , dan saya perhatikan bahwa sering ada tanda-tanda pound tunggal tanpa arahan preprocessor yang melekat padanya. Saya membaca manual preprocessor GCC dan panduan spesifikasi dan tidak dapat menemukan apa-apa tentang itu.
(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
Pada baris 4, tidak ada apa-apa setelah tanda pound. Apa dampaknya? Apakah ini didefinisikan dalam spesifikasi C preprocessor (CPP)?
Karena Boost adalah pustaka lintas platform, saya akan berasumsi bahwa CPP apa pun harus menguraikannya dengan benar. Apa efek / efek samping dari memiliki tanda pound / hash acak di seluruh kode?