mirror of
https://github.com/boostorg/detail.git
synced 2025-08-01 05:14:28 +02:00
Detail: complex
is a struct in Dinkumware.
IIRC it's `class` in SGI's STL and most other implementations. The state for similar warnings for the compilers that I've looked at: - Visual C++ never warns because I used a pragma to disable the warning. - GCC never warns with its standard library since it contains a `system_header` pragma. It might warn for other libraries. - Clang respects GCC's pragma so it never warns for GCC's standard library. Forward declarations are disabled for libc++ so this isn't an issue there. It does warn when using Dinkumware and possibly other standard libraries. I'm tempted to make container forwarding 'opt-in' rather than 'opt-out'. Or maybe only enable for compiler/library combinations where it's known to work. [SVN r75561]
This commit is contained in:
@@ -63,8 +63,7 @@
|
||||
# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
||||
// Dinkumware Library (this has to appear after any possible replacement
|
||||
// libraries)
|
||||
//
|
||||
// Works fine.
|
||||
# define BOOST_CONTAINER_FWD_COMPLEX_STRUCT
|
||||
# else
|
||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||
# endif
|
||||
@@ -117,7 +116,11 @@ namespace std
|
||||
template <class charT> struct char_traits;
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT)
|
||||
template <class T> struct complex;
|
||||
#else
|
||||
template <class T> class complex;
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
|
||||
template <class T, class Allocator> class deque;
|
||||
|
@@ -11,6 +11,7 @@ project detail/test/container_fwd
|
||||
<toolset>intel:<warnings>on
|
||||
<toolset>gcc:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
||||
<toolset>darwin:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
||||
<toolset>clang:<cxxflags>"-pedantic -Wextra -Wmismatched-tags"
|
||||
<warnings-as-errors>on
|
||||
;
|
||||
|
||||
|
Reference in New Issue
Block a user