[Bug libstdc++/60422] New: <bits/xxx.h> headers should give a diagnostic when included directly
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 5 09:24:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60422
Bug ID: 60422
Summary: <bits/xxx.h> headers should give a diagnostic when
included directly
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Some users do dumb things like:
#include <algorithm>
#include <ext/concurrence.h>
#include <bits/unique_ptr.h>
#include <bits/shared_ptr.h>
and expect to be able to use std::shared_ptr. This happens to work with GCC
4.8, but not with 4.9 because we re-arranged some headers to allow the library
to use shared_ptr internally.
In order to stop this nonsense we should add preprocessor checks to the
headers:
#ifndef _MEMORY
#error Do not include this header directly, use <memory> instead
#else
...
#endif
More information about the Gcc-bugs
mailing list