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).