May. 8th, 2008

madf: (Default)
Писав програму. В одному з модулів використовував std::list<T>. Обізвав його через typdef, скажімо, P, і, надалі використовував цей P для отримання ітератора (P::iterator) чи викликів begin(), end() та push_back().
Коли вже все працювало, встала необхідність додати до P поле, скажімо, int f. Дуже не хотілось змінювати код - бо багато. Тоді я поступив дуже просто.
Було:
typdef std::list<T> P;
Стало:
struct P {
    std::list<T> something;
    int f;
    typdef std::list<T>::iterator iterator;

    iterator begin() { return something.begin(); };
    iterator end() { return something.end(); };
    void push_back(const T & t) { something.push_back(t); };
    int GetF() const { return f; };
};

Ото такий проксі :)
Програма досі думає що працює зі списком, а насправді - це вже крутіша структура :)

PS: доки писав - замислився: якого біса я відкрито не пронаслідував std::list<T>? От баран...ште аж

Асько!

May. 8th, 2008 09:43 pm
madf: (Default)
Бісова програма!
Ідіотський протокол!
Тупі юзери!
Правильно пише [personal profile] arkanoid

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2025 08:03 am
Powered by Dreamwidth Studios