epoc32/include/stdapis/boost/multi_index/detail/access_specifier.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 /* Copyright 2003-2006 Joaquín M López Muñoz.
     2  * Distributed under the Boost Software License, Version 1.0.
     3  * (See accompanying file LICENSE_1_0.txt or copy at
     4  * http://www.boost.org/LICENSE_1_0.txt)
     5  *
     6  * See http://www.boost.org/libs/multi_index for library home page.
     7  */
     8 
     9 #ifndef BOOST_MULTI_INDEX_DETAIL_ACCESS_SPECIFIER_HPP
    10 #define BOOST_MULTI_INDEX_DETAIL_ACCESS_SPECIFIER_HPP
    11 
    12 #if defined(_MSC_VER)&&(_MSC_VER>=1200)
    13 #pragma once
    14 #endif
    15 
    16 #include <boost/config.hpp>
    17 #include <boost/detail/workaround.hpp>
    18 
    19 /* In those compilers that do not accept the member template friend syntax,
    20  * some protected and private sections might need to be specified as
    21  * public.
    22  */
    23 
    24 #if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
    25 #define BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS public
    26 #define BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS public
    27 #else
    28 #define BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS protected
    29 #define BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS private
    30 #endif
    31 
    32 /* GCC does not correctly support in-class using declarations for template
    33  * functions. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9810
    34  * MSVC 7.1/8.0 seem to have a similar problem, though the conditions in
    35  * which the error happens are not that simple. I have yet to isolate this
    36  * into a snippet suitable for bug reporting.
    37  * Sun Studio also has this problem, which might be related, from the
    38  * information gathered at Sun forums, with a known issue notified at the
    39  * internal bug report 6421933. The bug is present up to Studio Express 2,
    40  * the latest preview version of the future Sun Studio 12. As of this writing
    41  * (October 2006) it is not known whether a fix will finally make it into the
    42  * official Sun Studio 12.
    43  */
    44 
    45 #if BOOST_WORKAROUND(__GNUC__, <3)||\
    46     BOOST_WORKAROUND(__GNUC__,==3)&&(__GNUC_MINOR__<4)||\
    47     BOOST_WORKAROUND(BOOST_MSVC,==1310)||\
    48     BOOST_WORKAROUND(BOOST_MSVC,==1400)||\
    49     BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590))
    50 #define BOOST_MULTI_INDEX_PRIVATE_IF_USING_DECL_FOR_TEMPL_FUNCTIONS public
    51 #else
    52 #define BOOST_MULTI_INDEX_PRIVATE_IF_USING_DECL_FOR_TEMPL_FUNCTIONS private
    53 #endif
    54 
    55 #endif