Opened 21 years ago

Closed 19 years ago

Last modified 19 years ago

#24 closed Bugs (Wont Fix)

smart_ptr.hpp warnings on vacpp

Reported by: ingolf Owned by: Peter Dimov
Milestone: Component: smart_ptr
Version: None Severity:
Keywords: Cc:

Description

On vacpp version 5.0 (VisualAge C++ Professional
for AIX), smart_ptr.hpp (from boost release 1.26.0)
produces some warnings which can easily be
eliminated.

These warnings result from
- implicit private inheritance (noncopyable)
- missing typename keyword,
as for example:

"./boost/smart_ptr.hpp", line 79.41: 1540-0198 (W) The
omitted keyword "private" is assumed for base class
"noncopyable".
"./boost/smart_ptr.hpp", line 150.27: 1540-0152 (W) A
template dependent name that is a type must be
qualified with "typename".

See the attached patch file for changes to make
the compiler happy.

    Ingolf

Change History (3)

comment:1 by Peter Dimov, 19 years ago

Status: assignedclosed

comment:2 by ingolf, 19 years ago

Logged In: YES 
user_id=95969

Peter, 
 
could you please re-open the problem report, as at least the 
"missing typename" warnings are still present in version 1.30.0: 
 
"boost/detail/shared_count.hpp", line 364.27: 1540-0152 (W) A 
template dependent name that is a type must be qualified with 
"typename". 
"boost/shared_ptr.hpp", line 75.60: 1540-0152 (W) A template 
dependent name that is a type must be qualified with "typename". 
"boost/shared_ptr.hpp", line 182.25: 1540-0152 (W) A template 
dependent name that is a type must be qualified with "typename". 
"boost/shared_ptr.hpp", line 206.28: 1540-0152 (W) A template 
dependent name that is a type must be qualified with "typename". 
"boost/shared_ptr.hpp", line 395.37: 1540-0152 (W) A template 
dependent name that is a type must be qualified with "typename". 
"boost/shared_ptr.hpp", line 395.76: 1540-0152 (W) A template 
dependent name that is a type must be qualified with "typename". 
 
However, I'm not completely convinced that vacpp is right here. 
 
Kind regards 
    Ingolf 

comment:3 by Peter Dimov, 19 years ago

Logged In: YES 
user_id=305912

I think that the warnings are a compiler bug. C++ does not 
allow "typename X<T>", even though X<T> is dependent, 
since it always names a type (a class template instantiation.)
Note: See TracTickets for help on using tickets.