Size: a a a

2021 July 01

C

CristiCristiano in pro.cxx
по факту да... Но смысла в этом 0. Да и сам массив можно воспринимать как множество объектов подряд... Но с точки зрения плюсов массив это массив а объекты подряд UB. Но если объект временный он может не оказатся в кэшах и RAM, а взять адрес этого объекта будет бредовой идеей.
источник

D

Dmitriy in pro.cxx
Таки да. Висит на NtRemoveIoCompletion() (и там еще списочек вызовов уже внутри ядра)
источник

D

Dmitriy in pro.cxx
Ух ты какие страсти выяснились. Похоже, использование Asio в DLL вообще противопоказано
источник

D

Dmitriy in pro.cxx
Объект-обертка для WinSock в ней - глобальный статический, т.е. фактически WSAStartup() вызывается в DllMain
Я вижу расстрел ног
источник

ПК

Побитый Кирпич... in pro.cxx
Да dll на Винде это постоянный отстрел ног
источник

D

Dmitriy in pro.cxx
Как ни странно, остальные проблемы решаются BOOST_ASIO_DYN_LINK
источник

D

Dmitriy in pro.cxx
А здесь, похоже, на ишью тянет, хотя я мог невнимательно смотреть...
источник

d

disba1ancer in pro.cxx
А на линуксе?
источник

D

Dmitriy in pro.cxx
Я б сострил: нет DLL на Линуксе...)))
источник

ПК

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

d

disba1ancer in pro.cxx
Вот только они там, только называются иначе
источник

D

Dmitriy in pro.cxx
Да понятно, что с .so свои приколы
источник
2021 July 02

A

Alex in pro.cxx
Два года назад репортил ICE в MSVC. Только что его починили, и теперь у меня новый ICE в том же проекте, причём не могу понять, на каком именно фрагменте. Кому не лень - прошу поставить +1 моему репорту: https://developercommunity.visualstudio.com/t/Regression-169---1610:-MSVC-internal/1466208
источник

NK

Nikolay Kononov in pro.cxx
Есть доклад, где рассказывают как реализован magic static в разных компиляторах, никто не знает что за доклад?
источник

VU

Vadim Ushakov in pro.cxx
А я правильно понимаю, что нет стандартизированных кроссплатформенных способов получить информацию о CPU/GPU/RAM (и т.п.) машины, на которой запускается программа? Сторонние библиотеки в проект тащить не хочу.
источник

ES

Egor Suvorov in pro.cxx
Да
источник

VU

Vadim Ushakov in pro.cxx
Жаль, спасибо
источник

S

SupaproBot in pro.cxx
Ваш вопрос перемещён в чат @supapro . Там Вам с радостью помогут с Вашей проблемой :)
источник

C

Chuvi in pro.cxx
Товарищи, подскажите, пожалуйста, с точки зрения С++ этот код UB или нет?
#define RG_ADDR 0xA8800800
struct RG_Params_s
{
  uint32_t:12;
  uint32_t PAR_1:1;
  uint32_t PAR_2:1;
  uint32_t PAR_3:1;
  uint32_t :1;
  uint32_t PAR_4:16;
};

void InitRG()
{
  RG_Params_s OutCfg;
  memset(reinterpret_cast<void*>(RG_ADDR),0,sizeof(RG_Params_s));
  OutCfg.PAR_1=1;
  OutCfg.PAR_2=0;
  OutCfg.PAR_3=1;
  OutCfg.PAR_4=0;
  memcpy(reinterpret_cast<void*>(RG_ADDR),&OutCfg,sizeof(RG_Params_s));
}

(где здесь с++? Ну, в этой функции его  в общем-то нет, согласен, ибо тут он не нужен, он есть в окрестностях, которые к вопросу не имеют отношения)
Если тут UB нет, тогда продолжим.
Собственно, в чём вопрос. В результате  компиляции этого под MIPS32 я получил такой "выхлоп":
_Z6InitRGv:
lui     $v0, 0xA880
li      $v1, 0x5000
sw      $v1, 0xA8800800
sh      $zero, 0xA8800802
jr      $ra
nop


но только есть одна загвоздка: в эту зону памяти можно писать только 32-х разрядными словами. Соответственно, инструкция sh вместо обнуления того, что она хочет обнулить, стирает всё, что было записано.

В общем, с этим можно как-то бороться стандартными средствами, например "объяснив" компилятору/линкеру, что на этом участке запрещены некоторые операция с памятью? Или шансов нет, и нужно такое писать на ассемблере?
источник

AF

Aidar Fattakhov in pro.cxx
Это не уб вроде
источник