C++ (Qt)void foo ( const Value & value );
C++ (Qt)void foo ( Value const * const value );
C++ (Qt)struct MyStruct{ //using Type = std::string; //using Type = std::unique_prt< std::string >; Type m_attribute;}; void foo ( const std::string & value ); ...foo( my_struct.m_attribute ); //foo( *my_struct.m_attribute );...
C++ (Qt)struct Light { ... Light * masterLight; // "голый" указатель на мастера // пример использования мастера float GetIntesity( void ) const { if (masterLight && this->inheritIntensity()) // возвращаем значение мастера return masterLight->GetIntensity(); else retur this->m_intensity; // или собственное }};
C++ (Qt)struct Light { ... using WeakMaster = AssociationEnd< Light, AggregationKind::None >; WeakMaster masterLight; // полюс вида None ассоциативной связи агрегации c мастером // пример использования мастера float GetIntesity( void ) const { // гарант доступа к мастеру на протяжении всего вызова метода AccessGuard<WeakMaster > master_access_guard = masterLight; if ( master_access_guard && this->inheritIntensity()) // возвращаем значение мастера return master_access_guard->GetIntensity(); else return this->m_intensity; // или собственное }};
C++ (Qt)struct Light { ... QSharedPointer<Light> mSharedPtr; // приватный шаред на себя, создается в конструкторе с пустым Deleter ... QWeakPointer<Light> GetWeakPtr( void );};