VC++ макрос имени класса
От: Kingofastellarwar Украина  
Дата: 15.12.11 17:02
Оценка:
а нету там случайно макроса который имя класса автоматом подставляет

чтобы не писать


#define EventHandler(method) (MakeDelegate(this, &method))

EventHandler(CClass::OnEvent);


а какньть так

#define EventHandler(method) (MakeDelegate(this, &__CLASSNAME__::method))

EventHandler(OnEvent);
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re: VC++ макрос имени класса
От: Юрий Жмеренецкий ICQ 380412032
Дата: 15.12.11 17:41
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>а нету там случайно макроса который имя класса автоматом подставляет


K>чтобы не писать



K>
K>#define EventHandler(method) (MakeDelegate(this, &method))

K>EventHandler(CClass::OnEvent);
K>


K>а какньть так


K>
K>#define EventHandler(method) (MakeDelegate(this, &__CLASSNAME__::method))

K>EventHandler(OnEvent);
K>



#define EventHandler(method) (MakeDelegate(this, &std::remove_reference<decltype(*this)>::type::method))
Re[2]: VC++ макрос имени класса
От: Kingofastellarwar Украина  
Дата: 15.12.11 17:52
Оценка:
Здравствуйте, Юрий Жмеренецкий, Вы писали:

ЮЖ>
ЮЖ>#define EventHandler(method) (MakeDelegate(this, &std::remove_reference<decltype(*this)>::type::method))
ЮЖ>


а под 9-й компилер?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[3]: VC++ макрос имени класса
От: Юрий Жмеренецкий ICQ 380412032
Дата: 15.12.11 18:05
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>Здравствуйте, Юрий Жмеренецкий, Вы писали:


ЮЖ>>
ЮЖ>>#define EventHandler(method) (MakeDelegate(this, &std::remove_reference<decltype(*this)>::type::method))
ЮЖ>>


K>а под 9-й компилер?


BOOST_TYPEOF должен работать.
Re[3]: VC++ макрос имени класса
От: Юрий Жмеренецкий ICQ 380412032
Дата: 15.12.11 18:15
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>Здравствуйте, Юрий Жмеренецкий, Вы писали:


ЮЖ>>
ЮЖ>>#define EventHandler(method) (MakeDelegate(this, &std::remove_reference<decltype(*this)>::type::method))
ЮЖ>>


K>а под 9-й компилер?


Вот еще вариант:

#define EventHandler(method) (MakeDelegate(this, &self::method))

template<class T>
struct EventHandlerBase
{
    typedef T self;
};
    
struct Y 
    : EventHandlerBase<Y>
{
    EventHandler(f)
    void f();
};
Re[4]: VC++ макрос имени класса
От: Kingofastellarwar Украина  
Дата: 15.12.11 18:21
Оценка:
Здравствуйте, Юрий Жмеренецкий, Вы писали:

ЮЖ>Вот еще вариант:


наследоваться не хоцца
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[3]: VC++ макрос имени класса
От: о_О
Дата: 16.12.11 00:53
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>а под 9-й компилер?


под этого мамонта ничего уже нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.