Size: a a a

2020 October 21

ПК

Побитый Кирпич... in pro.cxx
Ofee
Однако, одно сделать несравнимо проще, чем другое. Если сделать что-то плохое сложно, есть шанс, что пользователь лучше ознакомится с документацией или вышлет PR на улучшение интерфейса моей библиотеки. Если же нарушать инкапсуляцию станет совсем просто – так начнут делать очень часто и тогда у меня только один вопрос – а для чего инкапсуляция вообще нужна? Для самодокументируемости только? Для этого и комментарии есть
Будем как в питоне на джентельменских соглашениях жить
источник

ПК

Побитый Кирпич... in pro.cxx
ARCHANGEL
Вдруг вам будет интересно. Нашел пример: https://habr.com/ru/post/111275/
Он, конечно, так сходу не завёлся, в нём есть пара косяков - возвращали адрес локального буфера, забыли в плюсовом коде вызвать функцию, которая в ассемблере заимплеменчена, но если всё исправить, то оно компилируется и работает. Из минусов - непонятно пока, как всё это сделать с cmake, потому что сейчас нужно проекты в IDE конфигурировать
Надо просто разобраться что происходит с asm файлами при сборке и повторить эти действия в cmake вплоть до написания велосипедов с ручным вызовом программ
источник

ПК

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

ПК

Побитый Кирпич... in pro.cxx
То есть даже не таргет свой специальный - такое гораздо проще завелосипедить на смаке
источник

m

magras in pro.cxx
Constantine Drozdov
Антон, а вы разбирали P0847R5 (deducing this)? Поскольку, как я понял, это сахарный синтаксис статических функций, возникают вопросы к тому, как у этой штуки будет браться адрес - на этой операции заканчивается эквивалентность между A::member и static_member(A&). Скажем, для
struct Base {
   void bar(this Base&&);
};
&Base::bar это больше совсем не void (Base::*)(), а void (*)(Base&) и все возможное преобразование к void (Derived::*)() полностью забыто.
Это в свою очередь означает, что либо указатели на функции-члены изначально не нужны, либо унификация на новом синтаксисе невозможна
А [n4474] не решает эту проблему? Я слышал, что эту идею забросили, но не знаю почему.
источник

p

paperbot_cpp in pro.cxx
magras
А [n4474] не решает эту проблему? Я слышал, что эту идею забросили, но не знаю почему.
N4474: Unified Call Syntax: x.f(y) and f(x,y) (by Bjarne Stroustrup, Herb Sutter) (2015-04-12)
источник

m

magras in pro.cxx
И @antoshkka ты не знаешь о судьбе [n4013]?
источник

p

paperbot_cpp in pro.cxx
magras
И @antoshkka ты не знаешь о судьбе [n4013]?
N4013: Atomic operations on non-atomic data (by Hans Boehm) (2014-05-26)
источник

ПК

Побитый Кирпич... in pro.cxx
magras
И @antoshkka ты не знаешь о судьбе [n4013]?
вроде там не получалось без слома кода сделать
источник

m

magras in pro.cxx
Побитый Кирпич
вроде там не получалось без слома кода сделать
Это про атомики или unified call syntax?
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Классический антипаттерн "Паблик Морозов"
У меня в коде еще один "паттерн" есть
struct job1_data { some_interface & interface; };
struct job2_data { some_interface const& interface; };

class Some : public Base {
public:
  void job1(job1_data data) override;
  void job2(job2_data data) override;
private:
  template <typename Data> void job(Data data); //а тело в .cpp, конечно
};
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Это про атомики или unified call syntax?
про unified
источник

AP

Antony Polukhin in pro.cxx
источник

m

magras in pro.cxx
Спасибо. Проглядел это нововведение. =(
источник

AP

Antony Polukhin in pro.cxx
magras
Спасибо. Проглядел это нововведение. =(
Я как вы планируетее его использовать?
источник

m

magras in pro.cxx
Antony Polukhin
Я как вы планируетее его использовать?
Апи ядра io_uring использует обычные i32, но требует использовать атомарные операции.
источник

AP

Antony Polukhin in pro.cxx
magras
Апи ядра io_uring использует обычные i32, но требует использовать атомарные операции.
Неожиданно крутое применение, спасибо за инфу!
источник

yp

yield programmer in pro.cxx
Всем привет ,ошибку в qt : mainwindow.cpp:133:5: error: invalid use of incomplete type 'QDebug'
qlogging.h:57:7: note: forward declaration of 'QDebug'
источник

Е

Егор in pro.cxx
yield programmer
Всем привет ,ошибку в qt : mainwindow.cpp:133:5: error: invalid use of incomplete type 'QDebug'
qlogging.h:57:7: note: forward declaration of 'QDebug'
#include <QDebug>
источник

Е

Егор in pro.cxx
источник