Merrewend
> Может это из-за того, что везде применяется для передачи в создавалку тупла, а
> не в пользовательскую функцию с неизвестным типом?
там вообще если честно какой то бред с выводом типов и этой создавалкой туплов, у меня оно как то вообще без кучи этих непонятных хелперов работает
Merrewend
> Вот, например, нам нужно узнать типы аргументов, а вызывать пока не нужно и
> аргументы для вызова не передаём
хз, имхо это делается не так...
для этого заводится структурка, которая специализируется на R(Args...)
ну по типу того как std::function запилен
но вообще надо конкретный пример смотреть...
из практики, чаще всего тебе тупо не нужен этот список аргументов
dedm0zaj
> CTimer_m *pThis = reinterpret_cast<CTimer_m*>(IpParam);
Тут можно static_cast, если LPVOID = void*
dedm0zaj
Ну LPVOID так вообще халява: http://ideone.com/qC8CNb
Не знаю почему ты решил, что без reinterpret никак.
=A=L=X=
щас проверю
upd:
работает (
PANDA
> Тут можно static_cast, если LPVOID = void*
в winnt.h
typedef void *PVOID,*LPVOID;
beejah
> Под ведро уже работают?
а хз.
но нужно быть реальным тормозом,
что бы за 7 лет не осилить с++11
=A=L=X=
> Не знаю почему ты решил, что без reinterpret никак.
сишный каст как бе вкл. в себя reinterpret_cast,
а так жи const_cast, и static_cast
Kartonagnick
Прямо все три разом?
dave
> Прямо все три разом?
внезапно!
Kartonagnick
> сишный каст как бе вкл. в себя reinterpret_cast,
В данном случае reinterpret_cast не нужен ни в составе c-cast, ни без него
Кроме того, c-style cast не всегда сводится до reinterpret_cast, зачастую блокируя ошибки не хуже static_cast: http://ideone.com/i6poKh
P.S.
До reinterpret он сводится если типы указателей не имеют вообще ничего общего.
Kartonagnick
> но нужно быть реальным тормозом,
> что бы за 7 лет не осилить
Пф. Тут С99 по сей день осилить не могут, а ты про какие-то 7 лет.
такой вопрос
вот есть 4 функции в шаблонном классе, OutType это аргумент шаблоного класса
template<typename... Args> std::optional<OutType> operator()( Args && ... args) { c = c( std::forward<Args>( args)...); return c.get( ); } std::optional<OutType> operator( )( ) { c = c( ); return c.get( ); } template<typename... Args> void operator( )( Args && ... args) { c = c( std::forward<Args>( args)...); } void operator( )( ) { c = c( ); }
я так и не пойму... есть вменяемый способ сделать так используя enable_if или нет?
а то мне что то казалось что как то можно разрулить, но сейчас что то туплю и не пойму
cNoNim
Вот что нашаманилось: http://ideone.com/GDPspp
есть ли редактор или плагин для иде, который умеет открывать два текстовых файла в одном окне: *.h сверху, *.cpp снизу? и там какая нить полоса разделения между ними.
dedm0zaj
> есть ли редактор или плагин для иде
QtCreator умеет, Visual Studio, кажется, тоже.
Тема в архиве.