updated comments on int=0 disambiguators

[SVN r22978]
This commit is contained in:
Joaquín M. López Muñoz
2004-05-31 06:20:00 +00:00
parent b804495ad7
commit d4039c32ce
4 changed files with 34 additions and 6 deletions

View File

@@ -531,6 +531,16 @@ struct composite_key_result
/* composite_key */
/* NB. Some overloads of operator() have an extra dummy parameter int=0.
* This disambiguator serves several purposes:
* - Without it, MSVC++ 6.0 incorrectly regards some overloads as
* specializations of a previous member function template.
* - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
* as if they have the same signature.
* - If remove_const is broken due to lack of PTS, int=0 avoids the
* declaration of memfuns with identical signature.
*/
template<
typename Value,
BOOST_MULTI_INDEX_CK_ENUM(BOOST_MULTI_INDEX_CK_TEMPLATE_PARM,KeyFromValue)

View File

@@ -34,9 +34,13 @@ namespace detail{
*/
/* NB. Some overloads of operator() have an extra dummy parameter int=0.
* This is so because MSVC++ 6.0 otherwise *incorrectly* regards these
* overloads as specializations of a previous member function template.
* Left for all compilers as it does no harm.
* This disambiguator serves several purposes:
* - Without it, MSVC++ 6.0 incorrectly regards some overloads as
* specializations of a previous member function template.
* - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
* as if they have the same signature.
* - If remove_const is broken due to lack of PTS, int=0 avoids the
* declaration of memfuns with identical signature.
*/
template<typename Type>

View File

@@ -30,6 +30,16 @@ namespace multi_index{
* arbitrary combinations of these (vg. T** or auto_ptr<T*>.)
*/
/* NB. Some overloads of operator() have an extra dummy parameter int=0.
* This disambiguator serves several purposes:
* - Without it, MSVC++ 6.0 incorrectly regards some overloads as
* specializations of a previous member function template.
* - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
* as if they have the same signature.
* - If remove_const is broken due to lack of PTS, int=0 avoids the
* declaration of memfuns with identical signature.
*/
template<class Class,typename Type,Type (Class::*PtrToMemberFunction)()const>
struct const_mem_fun
{

View File

@@ -33,9 +33,13 @@ namespace detail{
*/
/* NB. Some overloads of operator() have an extra dummy parameter int=0.
* This is so because MSVC++ 6.0 otherwise *incorrectly* regards these
* overloads as specializations of a previous member function template.
* Left for all compilers as it does no harm.
* This disambiguator serves several purposes:
* - Without it, MSVC++ 6.0 incorrectly regards some overloads as
* specializations of a previous member function template.
* - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
* as if they have the same signature.
* - If remove_const is broken due to lack of PTS, int=0 avoids the
* declaration of memfuns with identical signature.
*/
template<class Class,typename Type,Type Class::*PtrToMember>