Size: a a a

2021 February 21

FS

Flower Surgeon in pro.cxx
Mike Piterson
try/catch, это я знаю. Но тут он не работает. Программа крашается, несмотря на его наличие
1. Дебажься, а не задавай глупые вопросы.
2. google SetUnhandledExceptionFilter().
3. @supapro
источник

ПК

Побитый Кирпич... in pro.cxx
Dmitriy
Пусть где-то объявлен и определён класс MyClass.
Приложение A создает объект этого класса и записывает в shared-память указатель на него и указатели на все методы.
Является ли чем-то нехорошим с точки зрения Стандарта вызов этих методов по указателю из приложения B?
Короче, всё это Implementation defined
источник
2021 February 22

EP

Egor Pugin in pro.cxx
корутины можно под if constexpr прятать?
        if constexpr (Async)
           co_return std::move(result["result"]);
       else
           return std::move(result["result"]);

msvc пока не даёт, ругается
источник

EP

Egor Pugin in pro.cxx
что тут?
источник

MK

Mikhail Kalugin in pro.cxx
Egor Pugin
корутины можно под if constexpr прятать?
        if constexpr (Async)
           co_return std::move(result["result"]);
       else
           return std::move(result["result"]);

msvc пока не даёт, ругается
Coroutines cannot use variadic arguments, plain return statements, or placeholder return types (auto or Concept).
Constexpr functions, constructors, destructors, and the main function cannot be coroutines.
Может? А может просто MSVC такое не умеет пока.
источник

MK

Mikhail Kalugin in pro.cxx
Egor Pugin
что тут?
Скорее всего, оно не может быть одновременно и простой функцией (return) и корутиной (co_return), и компилятор не позволяет это делать даже через прятание constexpr - ом.
источник

IZ

Ilia Zviagin in pro.cxx
wonder
Приветствую всех, подскажите пожалуйста какие-либо источники по изучению сетевого программирования
Стивенс, великий и ужасный
источник

IZ

Ilia Zviagin in pro.cxx
Dmitriy
Пусть где-то объявлен и определён класс MyClass.
Приложение A создает объект этого класса и записывает в shared-память указатель на него и указатели на все методы.
Является ли чем-то нехорошим с точки зрения Стандарта вызов этих методов по указателю из приложения B?
Стандарт не обсуждает проблемы такого уровня...
источник

АК

Александр Караев... in pro.cxx
источник

DS

Dmitry Sokolov in pro.cxx
ed braed
Ребят, а массив фундаментальных типов (int/uint/bool etc) может как-то неочевидно выравниваться в памяти?
Ну т.е. например int32_t[256] может по каким либо причинам занимать НЕ 1024 байта?
Интересуюсь по причине желания копировать подобные штуки memcpy, но не уверен насколько это будет переносимо.
Подчеркнусь - речь именно о фундаментальных типах.
Используй std::copy, для trivially copyable он и будет memcpy.
источник

AT

Alexander T in pro.cxx
Dmitriy
Пусть где-то объявлен и определён класс MyClass.
Приложение A создает объект этого класса и записывает в shared-память указатель на него и указатели на все методы.
Является ли чем-то нехорошим с точки зрения Стандарта вызов этих методов по указателю из приложения B?
Адресные пространства разные жеж, в shared надо класть не указатель на объект, а сам объект, иначе уведёт в segfault. Ну и указатели на функции тоже не нужны, в приложении B они будут свои.
Посмотрите на Boost.Interprocess, идейно всё всегда одно и то же, какой бы механизм шаримой памяти ни использовался бы. Ну и boost условно спрячет от вас всё UB под ковром.
источник

D

Dmitriy in pro.cxx
Alexander T
Адресные пространства разные жеж, в shared надо класть не указатель на объект, а сам объект, иначе уведёт в segfault. Ну и указатели на функции тоже не нужны, в приложении B они будут свои.
Посмотрите на Boost.Interprocess, идейно всё всегда одно и то же, какой бы механизм шаримой памяти ни использовался бы. Ну и boost условно спрячет от вас всё UB под ковром.
Совсем строго говоря, у меня не user space - и адресное пространство одно
источник

D

Dmitriy in pro.cxx
Вопрос стоял исключительно с точки зрения использования указателей, считая, что в текущем контексте они всегда указывают туда, куда и должны
источник

IZ

Ilia Zviagin in pro.cxx
Саша Петров
Привет, подскажите, у меня есть код на с++, там выполняется умножение, но очень много раз. Из-за этого на 8гб оперативке оно выполняется 3 дня. А мне нужно увеличить по максимуму кол-во вычислений. Возможно ли как-то объединить 10 оперативок по 8гб в 80гб, насколько это трудно, получится ли на обычном проце, и повлияет как-то то, что код на С++. Может вопрос немного не в тему. Спс за ответы.
оффтопик
источник

I

Ioann_V in pro.cxx
Ребята, привет. Вопрос такой - часто ли вы используете такой вот трюк в разработке при использовании интерфейсов и имеемт ли он вообще смысл или это bad design?

class render_component_base_getter_i
{
public:
   virtual     render_component_base_t*            get_render_component()          = 0;
};

class render_component_shape_circle_getter_i    : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_circle_t*    get_render_component()          = 0;
};

class render_component_shape_rectangle_getter_i : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_rectangle_t* get_render_component()          = 0;
};
источник

I

Ioann_V in pro.cxx
Трюк с возвращаемым полиморфным значением из интерфейса.
источник

AZ

Alexander Zaitsev in pro.cxx
О, давно не было нового синтаксиса в языке :)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2320r0.pdf
источник

D

Danya in pro.cxx
Ioann_V
Ребята, привет. Вопрос такой - часто ли вы используете такой вот трюк в разработке при использовании интерфейсов и имеемт ли он вообще смысл или это bad design?

class render_component_base_getter_i
{
public:
   virtual     render_component_base_t*            get_render_component()          = 0;
};

class render_component_shape_circle_getter_i    : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_circle_t*    get_render_component()          = 0;
};

class render_component_shape_rectangle_getter_i : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_rectangle_t* get_render_component()          = 0;
};
Не вижу bad design
источник

AS

Anatoly Shirokov in pro.cxx
Ioann_V
Ребята, привет. Вопрос такой - часто ли вы используете такой вот трюк в разработке при использовании интерфейсов и имеемт ли он вообще смысл или это bad design?

class render_component_base_getter_i
{
public:
   virtual     render_component_base_t*            get_render_component()          = 0;
};

class render_component_shape_circle_getter_i    : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_circle_t*    get_render_component()          = 0;
};

class render_component_shape_rectangle_getter_i : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_rectangle_t* get_render_component()          = 0;
};
Какой трюк? Возврат ковариантного типа? А в чем трюк?
источник

bt

baby tonight in pro.cxx
Ioann_V
Ребята, привет. Вопрос такой - часто ли вы используете такой вот трюк в разработке при использовании интерфейсов и имеемт ли он вообще смысл или это bad design?

class render_component_base_getter_i
{
public:
   virtual     render_component_base_t*            get_render_component()          = 0;
};

class render_component_shape_circle_getter_i    : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_circle_t*    get_render_component()          = 0;
};

class render_component_shape_rectangle_getter_i : public render_component_base_getter_i
{
public:
   virtual     render_component_shape_rectangle_t* get_render_component()          = 0;
};
Используем, любим
источник