Re[7]: Исповедь C++ника
От: B0FEE664  
Дата: 23.12.20 15:48
Оценка:
Здравствуйте, smeeld, Вы писали:

BFE>>Ну не все могут в C++. Это сложный язык, он не для всех. Вот кто не осилил, те и переписывает. Если вам подсунут язык, которого вы не знаете, то вы тоже перепишите. Люди не знают С++, вот и переписывают.


S>Да, как бы, наоборот. Все вокруг исключительно C++-ники. Один другого матёрее. Сидят в корпоративных чатах и соревнуются в пересказывании наизусть стандарта. Без шуток. В РФ вообще C++-ников как грязи. Вполне себе на уровне. Решение переписывать на другие ЯП спускают сверху архитекторы, в подавляющем большинстве случаев. Невозможно? Неизбежно.


Одно дело пересказывать правила стандарта, а другое дело уметь читать код.
Многие смогут прочитать и понять, например, это?:
#include <algorithm>
#include <functional>
#include <list>

class Button {

    public:
        typedef void (*OnPress)(Button *, void *closure);
    
    private:
        typedef std::pair<OnPress, void*> PressCallBack;
        std::list<PressCallBack> onPress;

        struct Notify:
        public std::binary_function<PressCallBack, Button*, void> {
            void operator()( PressCallBack& c, Button* b) const {
                (*c.first)(b, c.second);
            }
        };

        void NotifyAll(void){
            std::for_each(
                onPress.begin(), onPress.end(),
                std::bind2nd(Notify(), this)
            );
        }

    public:
        void AddOnButtonPress(OnPress f, void *c){
            onPress.push_back(PressCallBack(f,c));
        }

        void RemoveOnButtonPress(OnPress f, void *c){
            onPress.remove(PressCallBack(f,c));
        }
};



А что насчёт других языков — я не знаю, я сейчас переписываю код с C# на C++.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.