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