$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-11-28 09:26:55
At 10:58 AM 11/27/2003, Peter Dimov wrote:
 >Beman Dawes wrote:
 >>
 >> Is this something we want to try to fix this release? There is
 >> possibly suspect _MSC_VER use in the Boost headers listed below.
 >>
 >> --Beman
 >>
 >> boost\bind.hpp
 >> boost\checked_delete.hpp
 >> boost\current_function.hpp
 >> boost\mem_fn.hpp
 >> boost\ref.hpp
 >> boost\throw_exception.hpp
 >> boost\bind\arg.hpp
 >> boost\bind\placeholders.hpp
 >> boost\detail\atomic_count.hpp
 >> boost\detail\atomic_count_win32.hpp
 >> boost\detail\lightweight_mutex.hpp
 >> boost\detail\lightweight_test.hpp
 >> boost\detail\lwm_nop.hpp
 >> boost\detail\lwm_pthreads.hpp
 >> boost\detail\lwm_win32.hpp
 >> boost\detail\lwm_win32_cs.hpp
 >> boost\detail\lwm_win32_nt.hpp
 >> boost\detail\quick_allocator.hpp
 >> boost\detail\shared_count.hpp
 >
 >These contain
 >
 >    #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 >    #  pragma once
 >    #endif
 >
 >which is intentional. As a general rule, compilers that expose _MSC_VER 
do
 >support "#pragma once".
That's why I made the point in the original posting about comments 
indicating intent. It would be a lot easier if the above had said something 
like:
    #if defined(_MSC_VER) && (_MSC_VER >= 1020) // MS & compatible 
compilers
    #  pragma once
    #endif
or maybe:
    BOOST_ONCE
The BOOST_XXX macro approach seems preferable if it really is a commonplace 
usage (and thus something other compilers may add, perhaps with different 
spelling). Also would work well if Borland initially doesn't support 
#pragma once with their new compiler and then later does support it.
But even just adding a comment makes clear to a "grep" that the case of 
compatible compilers was considered.
--Beman