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