[ 
https://issues.apache.org/jira/browse/STDCXX-803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12583729#action_12583729
 ] 

Farid Zaripov commented on STDCXX-803:
--------------------------------------

The failing line:
-------------
        const std::bitset<N> b (ULONG_MAX & bmask);
-------------

Here bmask type is size_t which equal to unsigned long long.

The possible ways to fix this issue are:
1. cast ULONG_MAX & bmask to unsigned int;
2. add bitset ctor overloads for long long and unsigned long long types.

> [MSVC] error on std::bitset ctor in 23.bitset.cpp
> -------------------------------------------------
>
>                 Key: STDCXX-803
>                 URL: https://issues.apache.org/jira/browse/STDCXX-803
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: MSVC 8, 9
>            Reporter: Martin Sebor
>            Assignee: Farid Zaripov
>             Fix For: 4.2.1
>
>         Attachments: bitset.log
>
>
> In stdcxx 4.2.0 as well as on the head of trunk, the test 
> [23.bitset|http://svn.apache.org/repos/asf/stdcxx/trunk/tests/containers/23.bitset.cpp]
>  fails to compile with both MSVC 8.0 and 9.0 with errors similar to the one 
> below.
> {noformat}
> Compiling...
> 23.bitset.cpp
> ..\..\..\..\tests\containers\23.bitset.cpp(753) : warning C4624: 
> 'std::char_traits<UserChar>' : destructor could not be generated because a 
> base class destructor is inaccessible
> ..\..\..\..\tests\containers\23.bitset.cpp(842) : warning C4244: 'return' : 
> conversion from '__int64' to 'int', possible loss of data
> ..\..\..\..\tests\containers\23.bitset.cpp(401) : error C2668: 
> 'std::bitset<_Size>::bitset' : ambiguous call to overloaded function
>         with
>         [
>             _Size=0x00
>         ]
>         $(TOPDIR)\include\bitset(287): could be 
> 'std::bitset<_Size>::bitset(long)'
>         with
>         [
>             _Size=0x00
>         ]
>         $(TOPDIR)\include\bitset(283): or       
> 'std::bitset<_Size>::bitset(unsigned int)'
>         with
>         [
>             _Size=0x00
>         ]
>         $(TOPDIR)\include\bitset(279): or       
> 'std::bitset<_Size>::bitset(int)'
>         with
>         [
>             _Size=0x00
>         ]
>         $(TOPDIR)\include\bitset(161): or       
> 'std::bitset<_Size>::bitset(unsigned long)'
>         with
>         [
>             _Size=0x00
>         ]
>         while trying to match the argument list '(const size_t)'
>         ..\..\..\..\tests\containers\23.bitset.cpp(1303) : see reference to 
> function template instantiation 'void test_ctors<0x00>(const 
> std::bitset<_Size> *)' being compiled
>         with
>         [
>             _Size=0x00
>         ]
>         ..\..\..\..\tests\containers\23.bitset.cpp(1322) : see reference to 
> function template instantiation 'void run_test<0x00>(const std::bitset<_Size> 
> *)' being compiled
>         with
>         [
>             _Size=0x00
>         ]
> ..\..\..\..\tests\containers\23.bitset.cpp(417) : error C2678: binary '==' : 
> no operator found which takes a left-hand operand of type 'const 
> std::bitset<_Size>' (or there is no acceptable conversion)
>         with
>         [
>             _Size=0x00
>         ]
>         C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\guiddef.h(192): 
> could be 'int operator ==(const GUID &,const GUID &)'
>         $(TOPDIR)\include\bitset(433): or       'bool 
> std::bitset<_Size>::operator ==(const std::bitset<_Size> &) const'
>         with
>         [
>             _Size=0x00
>         ]
>         while trying to match the argument list '(const std::bitset<_Size>, 
> const size_t)'
>         with
>         [
>             _Size=0x00
>         ]
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to