Только что видел это внутри <boost/asio.hpp>
#ifndef BOOST_ASIO_HPP
#define BOOST_ASIO_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
/// ....
#endif // BOOST_ASIO_HPP
Не считая проверки препроцессора _MSC_VER
, в чем преимущество #pragma once
в этом случае? Не гарантирует ли защита заголовка препроцессора во всех случаях и на всех платформах, содержимое заголовка только когда-либо included
один раз?