Opened 12 years ago

Closed 11 years ago

#4383 closed Bugs (fixed)

Forward declaration of char_traits causes warning C4099 in Interprocess library when using STLPort

Reported by: oscarins@… Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: interprocess
Version: Boost 1.41.0 Severity: Problem
Keywords: Cc:

Description

The forward declaration of char_traits in Interprocess library (interprocess_fwd.hpp) produces warning C4099 in msvc8 with stlport-5.2.1.

c:\test\external\boost\boost\interprocess\interprocess_fwd.hpp(50) : warning C4099: 'stlpd_std::char_traits' : type name first seen using 'class' now seen using 'struct' c:\test\external\stlport\stlport\stl\char_traits.h(204) : see declaration of 'stlpd_std::char_traits'

Change History (2)

comment:1 by phil@…, 12 years ago

Same issue occurs on Boost 1.35 and STLPort 5.1.5 when attempting a simple example using boost::lambda - see below:

vector<int> a; a.push_back(1); a.push_back(2);

for_each ( a.begin(), a.end(), cout << endl << _1 );

\Support Files\boost.1.35.0\boost/lambda/detail/operator_return_type_traits.hpp(62) : error C2220: warning treated as error - no 'object' file generated \Support Files\boost.1.35.0\boost/lambda/detail/operator_return_type_traits.hpp(62) : warning C4099: 'stlpd_std::complex' : type name first seen using 'struct' now seen using 'class' \Support Files\STLport-5.1.5\stlport\stl/_complex.h(47) : see declaration of 'stlpd_std::complex' \Support Files\boost.1.35.0\boost/numeric/ublas/storage.hpp(289) : warning C4100: 'i' : unreferenced formal parameter \Support Files\boost.1.35.0\boost/numeric/ublas/storage.hpp(289) : while compiling class template member function 'void boost::numeric::ublas::unbounded_array<T>::iterator_destroy(double *&)'

comment:2 by Ion Gaztañaga, 11 years ago

Resolution: fixed
Status: newclosed

Fixed in trunk at revision: 76143. Added include <string> and avoided predeclaration

Note: See TracTickets for help on using tickets.