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

Travis Vitek commented on STDCXX-968:
-------------------------------------

The fix is to modify the {{_RWSTD_DISPATCH}} macro in {{_select.h}} as follows

{noformat}
  #  define _RWSTD_DISPATCH(iter)   \
-         (_TYPENAME _RW::__rw_select_int< iter >::_SelectT (1))
+         (_TYPENAME _RW::__rw_select_int< iter >::_SelectT (0))
{noformat}

The macro essentially expands out to {{void* = 1}} or {{int = 1}}, and the 
modified version substitutes a 0 for the 1. This is better because 0 is the 
special NULL pointer value.


> [HP aCC 6.16] Remark #4231 using std::vector<>::assign
> ------------------------------------------------------
>
>                 Key: STDCXX-968
>                 URL: https://issues.apache.org/jira/browse/STDCXX-968
>             Project: C++ Standard Library
>          Issue Type: Improvement
>    Affects Versions: 4.2.1
>            Reporter: Travis Vitek
>            Priority: Trivial
>             Fix For: 4.2.2
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Note that I have removed +W4231 from the build line by modifying 
> {{$(BUILDDIR)/makefile.in}}
> {noformat}
> [EMAIL PROTECTED] tests]$ cat t.cpp && gmake t.o
> #include <vector>
> struct S { };
> int main ()
> {
>    S s;
>    std::vector<S> v;
>    v.assign (&s, &s + 1);
>    return 0;  
> }
> aCC -c  -D_RWSTDDEBUG \
>   -I/amd/devco/vitek/stdcxx/4.3.x/include \
>   -I/build/vitek/4.3.0/11S/include \
>   -I/amd/devco/vitek/stdcxx/4.3.x/tests/include  \
>   -AA -g +d +DD64 +w \
>   +W392,655,684,818,819,849 \
>   +W2193,2236,2261,2340,2401,2487 \
>   +W4227,4229,4235,4237,4249 \
>   +W4255,4272,4284,4285,4286,4296,4297 \
>   +W3348   t.cpp
> "/amd/devco/vitek/stdcxx/4.3.x/include/vector", line 194: remark #4231-D: 64
>           bit migration: conversion between types of different sizes has
>           occurred (from "int" to "void *" )
>           _C_assign (__first, __last, _RWSTD_DISPATCH (_InputIter));
>                                       ^
>           detected during instantiation of "void std::vector<_TypeT,
>                     _Allocator>::assign(_InputIter, _InputIter) [with
>                     _TypeT=S, _Allocator=std::allocator<S>, _InputIter=S *]"
>                     at line 10 of "t.cpp"
> {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