C++ (Qt)class RGB_Real{public: RGB_Real( const RGB_Float & ); }; // void RaiseContract(RGB_Real &); // здесь плюсовый класс для расчетоы..RaiseContract(c_struct->color); // а данные в структуре С..
C++ (Qt)class Wrapper{public: Wrapper(RGB_Float &data): m_data(data) {} private: RGB_Float &m_data;}... RaiseContract(Wrapper(c_struct->color));
C++ (Qt)class Wrapper : public std::reference_wrapper<RGB_Float> {};
C++ (Qt)template <class T>class wrapper : public std::reference_wrapper<T>{public: wrapper(T &x) : std::reference_wrapper<T>(x) {} wrapper& operator=(const T &x) { this->get() = x; return *this; } wrapper& operator=(const wrapper<T> &x) { this->get() = x.get(); return *this; } // + Ещё какой либо функционал, в зависимости от задачи..}; template <class T>inline const T operator+(const wrapper<T> &x, const wrapper<T> &y) { return x.get() + y.get();} template <class T>inline const T operator-(const wrapper<T> &x, const wrapper<T> &y) { return x.get() - y.get();} void print(int x) { std::cout << "print int: value = " << x << std::endl;} template <class T>void print(wrapper<T> &w) { std::cout << "print wrapper: value = " << w << std::endl;} int main(){ int a = 10; int b = 20; int c = 0; wrapper<int> wa(a); wrapper<int> wb(b); wrapper<int> wc(c); wc = wa + wb; print(wc); print(c); return 0;}
C++ (Qt)typedef wrapper<RGB_Float> RGB_Real;