Size: a a a

2020 October 15

АР

Андрей Руссков... in pro.cxx
и это то о чем я знаю, хотя уже как раз два года вообще не работаю на винде (и рад)
источник

ПК

Побитый Кирпич... in pro.cxx
там куча сломов abi в отдельной ветке
источник

ПК

Побитый Кирпич... in pro.cxx
ждут часа X
источник

АР

Андрей Руссков... in pro.cxx
Побитый Кирпич
вангую что оно не смержено
там прям надо флажок компилятора указывать при сборке, что ты понял что там изменение
источник

АР

Андрей Руссков... in pro.cxx
и что оно сломает тебе непересобранное использующее то же самое
источник

ПК

Побитый Кирпич... in pro.cxx
Андрей Руссков
там прям надо флажок компилятора указывать при сборке, что ты понял что там изменение
не слышал про такое
источник

АР

Андрей Руссков... in pro.cxx
и я натыкался на релизной версии компилятора
источник

VF

Vlad Faust in pro.cxx
https://github.com/vladfaust/thread-pool-msvc-bug/tree/unique_ptr-attempt завернул в unique_ptr. Компилится, но future теперь всегда возвращает 1. Я уже через это проходил, решения не нашёл
источник

VF

Vlad Faust in pro.cxx
При этом, блин, мы же кастуем уже после получения футура. Оно должно работать!
источник

ПК

Побитый Кирпич... in pro.cxx
Vlad Faust
https://github.com/vladfaust/thread-pool-msvc-bug/tree/unique_ptr-attempt завернул в unique_ptr. Компилится, но future теперь всегда возвращает 1. Я уже через это проходил, решения не нашёл
А че это за каст такой? Это вообще UB я думаю
источник

ПК

Побитый Кирпич... in pro.cxx
Ты какой то type erasure чтоли велосипедишь такими кастами?
источник

VF

Vlad Faust in pro.cxx
Мы когда взяли футур, можно кастовать в packaged_task<void()> спокойно (смотри в мастер ветке)
источник

VF

Vlad Faust in pro.cxx
Побитый Кирпич
Ты какой то type erasure чтоли велосипедишь такими кастами?
Ну а что мне ещё остаётся
источник

VF

Vlad Faust in pro.cxx
Удивительно, что ветка с unique_ptr работает на других платформах
источник

IZ

Ilia Zviagin in pro.cxx
#_s #MSVC
Прикольно!
Речь о не(совсем)стандартных функциях С из стандартной библиотеки CRT, имеющих суффикс _s , и предназначенных для более безопасного использования приёмного буфера с контролем переполнения.

Я только допёр до этого вот сейчас, что они на самом деле являются шаблонными функциями на С++!
Для чистого С! На С++ !

Да блин, как же они это компилируют? Находу переключают режим компиляции с С на С++ и обратно?
(вопрос риторический)

char    buf[2048];
   va_list vl;
   va_start(vl, format);
   vsprintf_s(buf, format, vl);
   va_end(vl);

__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
       _Success_(return >= 0)
       int, vsprintf_s,
       _Post_z_                      char,        _Buffer,
       _In_z_ _Printf_format_string_ char const*, _Format,
                                     va_list,     _ArgList
       )

       #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)  \
           extern "C++"                                                                                                         \
           {                                                                                                                    \
               template <size_t _Size>                                                                                          \
               inline                                                                                                           \
               _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
               {                                                                                                                \
                   return _FuncName(_Dst, _Size, _TArg1, _TArg2);                                                               \
               }                                                                                                                \
           }
источник

SE

Stanislav Ershov in pro.cxx
Ilia Zviagin
#_s #MSVC
Прикольно!
Речь о не(совсем)стандартных функциях С из стандартной библиотеки CRT, имеющих суффикс _s , и предназначенных для более безопасного использования приёмного буфера с контролем переполнения.

Я только допёр до этого вот сейчас, что они на самом деле являются шаблонными функциями на С++!
Для чистого С! На С++ !

Да блин, как же они это компилируют? Находу переключают режим компиляции с С на С++ и обратно?
(вопрос риторический)

char    buf[2048];
   va_list vl;
   va_start(vl, format);
   vsprintf_s(buf, format, vl);
   va_end(vl);

__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
       _Success_(return >= 0)
       int, vsprintf_s,
       _Post_z_                      char,        _Buffer,
       _In_z_ _Printf_format_string_ char const*, _Format,
                                     va_list,     _ArgList
       )

       #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)  \
           extern "C++"                                                                                                         \
           {                                                                                                                    \
               template <size_t _Size>                                                                                          \
               inline                                                                                                           \
               _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
               {                                                                                                                \
                   return _FuncName(_Dst, _Size, _TArg1, _TArg2);                                                               \
               }                                                                                                                \
           }
чего?
источник

SE

Stanislav Ershov in pro.cxx
Ilia Zviagin
#_s #MSVC
Прикольно!
Речь о не(совсем)стандартных функциях С из стандартной библиотеки CRT, имеющих суффикс _s , и предназначенных для более безопасного использования приёмного буфера с контролем переполнения.

Я только допёр до этого вот сейчас, что они на самом деле являются шаблонными функциями на С++!
Для чистого С! На С++ !

Да блин, как же они это компилируют? Находу переключают режим компиляции с С на С++ и обратно?
(вопрос риторический)

char    buf[2048];
   va_list vl;
   va_start(vl, format);
   vsprintf_s(buf, format, vl);
   va_end(vl);

__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
       _Success_(return >= 0)
       int, vsprintf_s,
       _Post_z_                      char,        _Buffer,
       _In_z_ _Printf_format_string_ char const*, _Format,
                                     va_list,     _ArgList
       )

       #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)  \
           extern "C++"                                                                                                         \
           {                                                                                                                    \
               template <size_t _Size>                                                                                          \
               inline                                                                                                           \
               _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
               {                                                                                                                \
                   return _FuncName(_Dst, _Size, _TArg1, _TArg2);                                                               \
               }                                                                                                                \
           }
вообще у тебя есть сорцы crt на компе) ищи давай и смотри как сделано
источник

DC

Denis Chernikov in pro.cxx
Ilia Zviagin
#_s #MSVC
Прикольно!
Речь о не(совсем)стандартных функциях С из стандартной библиотеки CRT, имеющих суффикс _s , и предназначенных для более безопасного использования приёмного буфера с контролем переполнения.

Я только допёр до этого вот сейчас, что они на самом деле являются шаблонными функциями на С++!
Для чистого С! На С++ !

Да блин, как же они это компилируют? Находу переключают режим компиляции с С на С++ и обратно?
(вопрос риторический)

char    buf[2048];
   va_list vl;
   va_start(vl, format);
   vsprintf_s(buf, format, vl);
   va_end(vl);

__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
       _Success_(return >= 0)
       int, vsprintf_s,
       _Post_z_                      char,        _Buffer,
       _In_z_ _Printf_format_string_ char const*, _Format,
                                     va_list,     _ArgList
       )

       #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)  \
           extern "C++"                                                                                                         \
           {                                                                                                                    \
               template <size_t _Size>                                                                                          \
               inline                                                                                                           \
               _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
               {                                                                                                                \
                   return _FuncName(_Dst, _Size, _TArg1, _TArg2);                                                               \
               }                                                                                                                \
           }
Насколько помню, MSVC не особо любит чистый Си, и я бы не ждал от них строгой конформности стандарту))
источник

IZ

Ilia Zviagin in pro.cxx
Stanislav Ershov
вообще у тебя есть сорцы crt на компе) ищи давай и смотри как сделано
Так выше, показал...
источник

DC

Denis Chernikov in pro.cxx
Т.е. спокойно могут ждать шаблонов в сишном коде и всякого разного из плюсов)
источник