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