Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация событий в С++ 
:(
    Опции темы
boostcoder
Дата 2.11.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Alexeis @  2.11.2010,  17:56 Найти цитируемый пост)
Раз они добавили в нее std::function<>, то нет необходимости использовать boost::function<> .

понял.
в предыдущем посте, запятая сбивала с толку.
PM WWW   Вверх
azesmcar
Дата 2.11.2010, 19:19 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(sofenru @  2.11.2010,  16:21 Найти цитируемый пост)
azesmcar, спасибо, но НАВЕРНОЕ (хотя тут с вами не в чём не уверен  smile  ) немного не то... 

что значит не то, это указатель на member функцию, а что ты под этим подразумевал я не знаю smile 

Цитата(sofenru @  2.11.2010,  16:21 Найти цитируемый пост)
как заставить работать следующий код:


Цитата(sofenru @  2.11.2010,  16:21 Найти цитируемый пост)
Эта функция должна вызываться по событию onClick кнопки button

но ты забыл очень важную вещь. Эта функция не просто функция, это функция - член класса и вызывается она не просто так а для конкретного объекта. Для какого объекта она должна вызываться?

sofenru
не изобретай велосипеды, здесь уже чуть ли не все посетители раздела тебе сказали, что ты ерундой занимаешься. Займись чем нибудь полезным. Я думаю на данном этапе для тебя самым полезным будет более детальное изучение языка. Почитай лучше несколько умных книг вместо копирования классов из Дельфи.

Цитата(sofenru @  2.11.2010,  17:14 Найти цитируемый пост)
вроде читал когда-то, что хотели включить... 

включить его (кстати далеко не весь) хотели в новый стандарт и включили кстати, просто стандарт пока не вышел и компиляторы его поддерживают частично. В VS2010 кое-что есть, но gcc 4.5.1 на порядок опережает по части экспериментальной поддержки нового стандарта.

Цитата(sofenru @  2.11.2010,  16:51 Найти цитируемый пост)
скоро либа заработает и уже станет не совсем смешно... я предлагаю скромное компромиссное решение - ввести на винграде следующие топики:

не мелочись, чего уж там..а тебя давай сразу в администраторы. Как раз тут у нас представитель администрации, на месте и коронуют. smile 


Это сообщение отредактировал(а) azesmcar - 2.11.2010, 20:10
PM   Вверх
sofenru
Дата 3.11.2010, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.10.2010

Репутация: нет
Всего: нет



Цитата(mes)

вспомнил, есть еще мальнькая библиотечка (поиск по словам winnie closure) может помочь решить мелкие вопросики и возможно утолить любопытство..
smile


Ага спасибо... сделал на ней... причём автор утверждает, что его способ это "что-то типа boost::function, но без использования динамической памяти" ... то есть, как я понимаю, даже намного круче!!! smile

а вот, что он пишет про boost::functional 

Цитата(Winnie)

Но она (то есть, boost::functional) имеет более неудобный синтаксис (когда у метода есть параметры, приходися писать так – boost::bind(&MyClass::OnClick, this, _1, _2)

И второе, что более важное, она гораздо менее эффективна. Дело в том, что внутри используется динамическое выделение памяти для каждого объекта функции, и соответственно это работает медленно и фрагментирует кучу.


Цитата(mes)

.... быстрей выпустить свою либу   smile, то лучше и то другое.. 


уже выложил версию 0.3 - можно выводить простейшие окошки... скоро уже буду элементики накидывать )

Это сообщение отредактировал(а) sofenru - 3.11.2010, 18:50
PM MAIL   Вверх
boostcoder
Дата 3.11.2010, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(sofenru @  3.11.2010,  18:48 Найти цитируемый пост)
Ага спасибо... сделал на ней... причём автор утверждает, что его способ это "что-то типа boost::function, но без использования динамической памяти" ... то есть, как я понимаю, даже намного круче!!! 

а вот, что он пишет про boost::functional 

Цитата(Winnie)

Но она (то есть, boost::functional) имеет более неудобный синтаксис (когда у метода есть параметры, приходися писать так – boost::bind(&MyClass::OnClick, this, _1, _2)

И второе, что более важное, она гораздо менее эффективна. Дело в том, что внутри используется динамическое выделение памяти для каждого объекта функции, и соответственно это работает медленно и фрагментирует кучу.

ну что тут скажешь... аффтар явно недорос до буста(как и ты) smile 
на самом деле, таким людям, не нужно ничего объяснять. такие тоже нужны...все знают для чего smile 

Цитата(sofenru @  3.11.2010,  18:48 Найти цитируемый пост)
уже выложил версию 0.3

уже страшно
ты случаем свою ОСь и аналог фотошопа не писал раньше? кого-то ты очень напоминаешь smile

Добавлено через 6 минут и 32 секунды
Цитата(sofenru @  3.11.2010,  18:48 Найти цитируемый пост)
внутри используется динамическое выделение памяти для каждого объекта функции, и соответственно это работает медленно и фрагментирует кучу.

кстати.
я полагаю, ты не тупое стадное быдла ищущее смысл в быдловизоре, и посему к тебе вопрос:
из слов "того" аффтара о boost::function, ты понял, что это не хорошо, и сформировал для сепя позицию. так вот, пожалуйста, объясни, чем плохо динамическое выделение памяти, и почему(как) происходит фрагментация кучи? а так же, приведи доказательство того, что boost::function выделяет динамическую память.

спасибо.

PM WWW   Вверх
mes
Дата 3.11.2010, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(sofenru @  3.11.2010,  17:48 Найти цитируемый пост)
причём автор утверждает, что его способ это "что-то типа boost::function, но без использования динамической памяти" ... то есть, как я понимаю, даже намного круче!!! 

ну да а велосипед круче автомибиля, так как нет двигателя .. Я понимаю, конечно,  экономия, экология.. но педали терь крутить вручную вножную.. 
 smile

Добавлено через 7 минут и 10 секунд
напомнило один детский рассказ :
Цитата

... крупные капли били ослика по спине. 
"больно", — подумал ослик. и спрятался под зонтик.
капли стучали по зонтику, и ослик подумал: "теперь больно зонтику". и вместе с зонтиком он укрылся в домике. 
и услышал, как дождь падает на крышу. теперь было больно домику. и тогда ослик залез на крышу и закрыл домик. 
— зачем ты это делаешь, ослик? — спросил его медвежонок. — разве тебе не больно? 
а ослик ответил: 
— кому-то всегда бывает больно. но я сильней, чем зонтик, и сильней, чем домик. а больно должно быть тому, кто сильный.

вобщем выбирайте кому должно быть больно:  Вам, или компилятору с осью.. 
 smile 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 3.11.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  3.11.2010,  21:55 Найти цитируемый пост)
напомнило один детский рассказ

мне это напомнило поговорку, которой я(будучи скептиком и циником) руководствуюсь:
Цитата

во дворе стоит сарай, на нем написано "х**". но там дрова!


это по поводу того, что кто-то что-то сказал, и где-то что-то написано.

PM WWW   Вверх
Alexeis
Дата 3.11.2010, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(sofenru @  3.11.2010,  19:48 Найти цитируемый пост)
"что-то типа boost::function, но без использования динамической памяти" 

  Для чего там динамическая память? Это же шаблоны. Тут все известно на этапе компиляции. И число параметров и их тип. Такие вещи в С++ реализуются без кучи.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
sofenru
Дата 4.11.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.10.2010

Репутация: нет
Всего: нет



Зачем все эти бесконечные споры? 

Я признаю, что я слабовато знаю С++. Просто у меня такая специфика работы, то плюсы, то ява, то пхп (и весь это набор хтмл, цсс, яваскрипт и т.д. и т.п...), то асутп (тут свой набор языков) и т.д... 

Это всё невозможно знать досканально!!! Что-то лучше, что-то хуже, но, конечно, далеко до профи. Хотя и этого, в принципе, хватает....

Теперь я решил сосредоточиться только на С++ (ну ещё посматриваю в сторону явы, но пока только С++). 

Я совсем слабовато знаю STL и совсем не знаю BOOST. Так что кидайте сюда ссылки по этим либам для чайникофф smile

На счёт своей библиотеки c3plus. Конечно же буду продолжать этот проектик! Думаю к новому году выйдет релиз!!!  smile 
PM MAIL   Вверх
mes
Дата 4.11.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Alexeis @  3.11.2010,  21:37 Найти цитируемый пост)
 Для чего там динамическая память? Это же шаблоны

к function можно подключить любой бинд в рантайме, а значит хранит содержимое по указателю, 
т.е.в дин. памяти..


--------------------
PM MAIL WWW   Вверх
Alexeis
Дата 4.11.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(mes @  4.11.2010,  12:04 Найти цитируемый пост)
к function можно подключить любой бинд в рантайме

  Хотя да, приемник то универсальный. С другой стороны это никак не влияет на скорость запуска обработчика (invoke), а ведь это и есть самый главный параметр. Вот кстати результаты тестов http://www.codeproject.com/KB/cpp/fastdelegate2.aspx . В большинстве случаев назначение обработчика не является действием критичным по времени.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rudvil
Дата 5.11.2010, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 20.11.2009
Где: Latvia/Riga

Репутация: 2
Всего: 3



оффтопик, извиняйте - не удержался...
object.cpp:383
Цитата
void List::remove(int index) {
    if (memory == NULL) return;
    if (index < 0) return;
    if (count == 0) return;
    if (index > 1000000)
        int a = 1;

    else {
        delete memory[index];

        for (int i = index; i < count - 1; i++) {
        memory[i] = memory[i + 1];
        }
        count--;
    }
}


Это сообщение отредактировал(а) rudvil - 5.11.2010, 00:42
--------------------
xor
PM MAIL Skype   Вверх
boostcoder
Дата 5.11.2010, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(rudvil @  5.11.2010,  00:41 Найти цитируемый пост)
void List::remove(int index) {
    if (memory == NULL) return;
    if (index < 0) return;
    if (count == 0) return;
    if (index > 1000000)
        int a = 1;
    else {
        delete memory[index];

        for (int i = index; i < count - 1; i++) {
        memory[i] = memory[i + 1];
        }
        count--;
    }
}

вопрос то в чем?
код откуда?
PM WWW   Вверх
mes
Дата 5.11.2010, 00:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



 smile 
boostcoder, 1111е сообщениеsmile


Это сообщение отредактировал(а) mes - 5.11.2010, 00:47


--------------------
PM MAIL WWW   Вверх
rudvil
Дата 5.11.2010, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 20.11.2009
Где: Latvia/Riga

Репутация: 2
Всего: 3



Цитата(boostcoder @ 5.11.2010,  00:45)
Цитата(rudvil @  5.11.2010,  00:41 Найти цитируемый пост)
void List::remove(int index) {
    if (memory == NULL) return;
    if (index < 0) return;
    if (count == 0) return;
    if (index > 1000000)
        int a = 1;
    else {
        delete memory[index];

        for (int i = index; i < count - 1; i++) {
        memory[i] = memory[i + 1];
        }
        count--;
    }
}

вопрос то в чем?
код откуда?

из этой библиотеки версии 0.3 =]
в файле object.cpp:383

магические цифры, магическая переменная "a"  smile 

Это сообщение отредактировал(а) rudvil - 5.11.2010, 00:51
--------------------
xor
PM MAIL Skype   Вверх
mes
Дата 5.11.2010, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(rudvil @  4.11.2010,  23:47 Найти цитируемый пост)
из этой библиотеки версии 0.3 =]

для тс : http://cplusplus.com/reference/stl/list/


--------------------
PM MAIL WWW   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0640 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.