Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 30, 2015, 10:59:13 PM (9 years ago)
Author:
landauf
Message:

fixed issue: Class(T) may not be allowed in StaticallyInitializedIdentifier::load() because T may not yet be initialized.
now the inheritance is resolved in Identifier::finishInitialization()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/class/Identifier.h

    r10483 r10512  
    112112    {
    113113        public:
     114            struct InheritsFrom //! helper class to manually define inheritance
     115            {
     116                virtual ~InheritsFrom() {}
     117                virtual Identifier* getParent() const = 0;
     118            };
     119
     120        public:
    114121            Identifier(const std::string& name, Factory* factory, bool bLoadable);
    115122            Identifier(const Identifier& identifier); // don't copy
     
    149156            ////// Class Hierarchy //////
    150157            /////////////////////////////
    151             Identifier& inheritsFrom(Identifier* directParent);
     158            Identifier& inheritsFrom(InheritsFrom* directParent);
    152159
    153160            void initializeParents(const std::list<const Identifier*>& initializationTrace);
     
    219226            void addIfNotExists(std::list<const Identifier*>& list, const Identifier* identifierToAdd) const;
    220227
     228            std::list<const InheritsFrom*> manualDirectParents_;            //!< Manually defined direct parents
    221229            std::list<const Identifier*> directParents_;                    //!< The direct parents of the class the Identifier belongs to (sorted by their order of initialization)
    222230            std::list<const Identifier*> parents_;                          //!< The parents of the class the Identifier belongs to (sorted by their order of initialization)
Note: See TracChangeset for help on using the changeset viewer.