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.