public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/42533] New: boost_concept_check.h - _SGIAssignableConcept broken the class self contains
@ 2009-12-29 10:23 baiyang at gmail dot com
2009-12-29 10:43 ` [Bug c++/42533] " baiyang at gmail dot com
2009-12-29 10:56 ` [Bug libstdc++/42533] " paolo dot carlini at oracle dot com
0 siblings, 2 replies; 3+ messages in thread
From: baiyang at gmail dot com @ 2009-12-29 10:23 UTC (permalink / raw)
To: gcc-bugs
for example, I have a class like this:
class MyClass
{
public:
MyClass() ...
MyClass(IN const MyClass& rhs) ...
MyClass& operator=(IN const MyClass& rhs)...
private:
typedef std::map< string, MyClass > KEYTBL; // Self contains
struct PROP {
...
KEYTBL tblKeys;
...
};
typedef SMART_POINTER< PROP > HPROP;
HPROP m_hProp;
};
As the example shown, If with out (early and msvc) the boost concept check,
then everything is perfect ok, Because C++ will try to instantiation the map
only when we need to use it. BUT the boost conept check (_SGIAssignableConcept)
just broken the c++ delay instantiation rule, so everything is broken here.
--
Summary: boost_concept_check.h - _SGIAssignableConcept broken the
class self contains
Product: gcc
Version: 4.3.2
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: baiyang at gmail dot com
GCC host triplet: OpenSolaris 2009.06 x86
GCC target triplet: OpenSolaris 2009.06 x86
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42533
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/42533] boost_concept_check.h - _SGIAssignableConcept broken the class self contains
2009-12-29 10:23 [Bug c++/42533] New: boost_concept_check.h - _SGIAssignableConcept broken the class self contains baiyang at gmail dot com
@ 2009-12-29 10:43 ` baiyang at gmail dot com
2009-12-29 10:56 ` [Bug libstdc++/42533] " paolo dot carlini at oracle dot com
1 sibling, 0 replies; 3+ messages in thread
From: baiyang at gmail dot com @ 2009-12-29 10:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from baiyang at gmail dot com 2009-12-29 10:43 -------
PS: the above example is a typical usage of the self contain skill. In this
exapmle, the coder will ensure every really usage point (i.e. every possible
template instantiation point) of 'm_hProp->tblKeys' in the code are all at
outside of MyClass' defination scope. So we guarantee the class has been fully
defined before using it.
BUT the "concept check" just cancelled the delay instantiation mechanism, so
the code doesn't work anymore.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42533
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug libstdc++/42533] boost_concept_check.h - _SGIAssignableConcept broken the class self contains
2009-12-29 10:23 [Bug c++/42533] New: boost_concept_check.h - _SGIAssignableConcept broken the class self contains baiyang at gmail dot com
2009-12-29 10:43 ` [Bug c++/42533] " baiyang at gmail dot com
@ 2009-12-29 10:56 ` paolo dot carlini at oracle dot com
1 sibling, 0 replies; 3+ messages in thread
From: paolo dot carlini at oracle dot com @ 2009-12-29 10:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from paolo dot carlini at oracle dot com 2009-12-29 10:56 -------
After so many years since that idea, we are not interested in squeezing more
from that interesting (but outdated) idea of simulating concept checks in the
library. Long term, we want proper concept checks in the language. Thus, please
just build your translation unit without defining _GLIBCXX_CONCEPT_CHECKS (or
do not build the entire library with --enable-concept-checks and enable the
checks only on a case by case basis)
--
paolo dot carlini at oracle dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|major |normal
Status|UNCONFIRMED |RESOLVED
Component|c++ |libstdc++
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42533
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-29 10:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-29 10:23 [Bug c++/42533] New: boost_concept_check.h - _SGIAssignableConcept broken the class self contains baiyang at gmail dot com
2009-12-29 10:43 ` [Bug c++/42533] " baiyang at gmail dot com
2009-12-29 10:56 ` [Bug libstdc++/42533] " paolo dot carlini at oracle dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).