C++ (Qt)struct CVarStruct { int mID; // "нормальный" член, он всегда есть//.. еще какие-то нормальные сhar mData[1]; // массив переменной длины};
C++ (Qt)template <size_t num>struct Civilized { int mID; сhar mData[num]; };
C++ (Qt)template <class>struct object; template <class T, class U>struct object<T (U)> {};
C++ (Qt)struct MyBaseClass { virtual void Apply( size_t index ) = 0; virtual size_t Size( void ) const = 0; template <class T> T Get( size_t index ); // ???};
C++ (Qt)template <class T>struct MyDerivedClass : public MyBaseClass { void Apply( size_t index ); size_t Size( void ) const { return mData.size(); } // data std::vector <T> mData;};
C++ (Qt)template <class T>T CalcAverage( const MyBaseClass & src ){ T sum = 0; for (size_t i = 0; i < src.Size(); ++i) sum += src.Get<T>(i);...}
C++ (Qt)template <class T>struct MyBaseClass { virtual void Apply( size_t index ) = 0; virtual size_t Size( void ) const = 0; virtual T Get( size_t index ) = 0; };
C++ (Qt)template <class T>struct MyDerivedClass : public MyBaseClass { void Apply( size_t index ); size_t Size( void ) const { return mData.size(); } T Get(size_t index) { return mData[index]; }// data std::vector <T> mData;};
C++ (Qt)template <class T>T CalcAverage( const MyBaseClass<T> & src ){ T sum = 0; for (size_t i = 0; i < src.Size(); ++i) sum += src.Get(i);...}
C++ (Qt)std::vector <MyBaseClass *> channels;...for (size_t i = 0; i < channels.size(); ++i) channels[i]->Apply(...);
C++ (Qt)std::vector <MyBaseClass <А здесь что??>*> channels;
C++ (Qt)struct MyBaseClass { virtual void Apply( size_t index ) = 0; virtual size_t Size( void ) const = 0; virtual boost::any Get( size_t index ) const = 0; };