Никак не связан с Zero Cost Conf или какой-нибудь другой крупной конференцией (вроде C++ Russia), но о том, чтобы каждый отдельный доклад также оформлять в виде отдельной статьи, думал при проведении собственных местячковых митапов.
Главный момент, который отбивает желание от идеи: переконвертировать доклад (который суть есть презентация + речь) в статью не так просто. Когда ты рассказываешь с презентацией и когда пишешь статью — это совсем разные стили. Просто совместить текст презентации с тем, что ты наговорил, и назвать это статьей, не получится. Так можно попробовать сделать, но в большинстве случаев получится страшная фигня :)
Ну и из этого следует, что если хочешь, чтобы конференция (митап) также была оформлена в виде статей, это каждого докладчика надо напрягать, чтобы он отдельно ещё и статью писал. А кто умеет хорошо выступать — не факт, что умеет хорошо писать. И большинство это не хочет делать и большинству это не надо.
А если речь про наклепать статей с ссылкой на видео и транскрибированными вопросами-ответами — это как-то совсем не круто.
Кажется, у них был уже с примерно таким же названием доклад на C++ Russia или где-то ещё, и там был не clang, а что-то своё
P.S. Пока что нагуглил только презентацию (https://pvs-studio.ru/ru/blog/video/11143/), но я точно помню, что когда-то где-то что-то было такое от них :)
Ну, по крайней мере, «сантаграмма» и «ретэсэнекен» (на картинке помечены синим) присутствуют на своих местах (9 строка в тексте по ссылке, «σαντα, γραμματεύσαντα» и 20-я строка в тексте по ссылке, ἀρετῆς ἕνεκεν)
Я сам давно учил древнегреческий и мало, так что решил обратиться к переводчику, который нашел, что на Реддите говорят, что он лучше всего древнегреческий переводит так (там максимум 400 символов за раз перевести можно):
The council of the Phaselite and the people honored Kolalim Exakestus with the fifth honors, a good and noble man and of the first rank of the city, who served as chief magistrate until the end, having been gymnasiarch, secretary of the council, priest, and twice prytanis, and also having been overseer of the gymnasiarchate and of public works, having held all the offices with great care, so that in each office...
Переводчику, конечно, тоже веры не много, но тут уже ручками можно со словарем поработать (что мне лень). Но уже как минимум наводит на сомнения в правильности перевода ChatGPT.
P.S. По всей видимости, ни один из стандартных атрибутов нельзя применять к единице трансляции. Но для кастомных аттрибутов стандарт оставляет лазейку:
attribute-declaration:
attribute-specifier-seq ;
Except where otherwise specified, the meaning of an attribute-declaration is implementation-defined.
Видимо, упоминание о том, что атрибуты могут быть применены к единицам трансляции, писалось именно с этим attribute-declaration на уме, что реализация может определить, что он значит «применить атрибут к единице трансляции» и будет при своём праве.
Но так как атрибуты могут использоваться в C++ коде практически везде и применяться практически ко всему: к типам, переменным, функциям, именам, блокам кода или целым единицам трансляции
Прочитал и задумался: а как это..? Погуглил стандарт и он правда говорит, что могут атрибуты применяться к единицам трансляции:
Attributes specify additional information for various source constructs such as types, variables, names, contract assertions, blocks, or translation units.
Но потом говорит:
Each attribute-specifier-seq is said to appertain to some entity or statement, identified by the syntactic context where it appears ([stmt], [dcl], [dcl.decl]).
А в какой позиции должен стоять атрибут, чтобы он применился к единице трансляции — так и не понял
Тут нет никакой оптимизации для trivially copyable. У вас тут буквально семантически эквивалентный код. Семантически эквивалентный, но вы во втором случае зачем-то делаете бесполезный piecewise construct.
template <typename K>
void insert(K&& key, Value&& value) {
if constexpr (std::is_trivially_copyable_v<Value>) {
// Быстрая вставка для простых типов (int, double и т.д.)
buckets.emplace_back(std::forward<K>(key), std::forward<Value>(value));
} else {
// Медленная, но безопасная для сложных типов
buckets.emplace_back(std::piecewise_construct,
std::forward_as_tuple(std::forward<K>(key)),
std::forward_as_tuple(std::forward<Value>(value)));
}
}
MSVC в общем не славится своими оптимизациями. Может, GCC или clang бы соптимизировал в один Canvas[0][0]
@AskePitВы можете расшарить код на godbolt.org, чтобы проверить теорию? (clang trunk, по идее, все используемые вами фичи должен поддерживать точно; может, и gcc trunk, но не уверен)
Никак не связан с Zero Cost Conf или какой-нибудь другой крупной конференцией (вроде C++ Russia), но о том, чтобы каждый отдельный доклад также оформлять в виде отдельной статьи, думал при проведении собственных местячковых митапов.
Главный момент, который отбивает желание от идеи: переконвертировать доклад (который суть есть презентация + речь) в статью не так просто. Когда ты рассказываешь с презентацией и когда пишешь статью — это совсем разные стили. Просто совместить текст презентации с тем, что ты наговорил, и назвать это статьей, не получится. Так можно попробовать сделать, но в большинстве случаев получится страшная фигня :)
Ну и из этого следует, что если хочешь, чтобы конференция (митап) также была оформлена в виде статей, это каждого докладчика надо напрягать, чтобы он отдельно ещё и статью писал. А кто умеет хорошо выступать — не факт, что умеет хорошо писать. И большинство это не хочет делать и большинству это не надо.
А если речь про наклепать статей с ссылкой на видео и транскрибированными вопросами-ответами — это как-то совсем не круто.
А Gemini API key пунктом выше по ссылке? Его же вроде бесплатно дают?
Кажется, у них был уже с примерно таким же названием доклад на C++ Russia или где-то ещё, и там был не clang, а что-то своё
P.S. Пока что нагуглил только презентацию (https://pvs-studio.ru/ru/blog/video/11143/), но я точно помню, что когда-то где-то что-то было такое от них :)
Тщательно погуглил и нашёл что-то очень похожее на текст с таблички: https://inscriptions.packhum.org/text/285093?hs=67-79
Ну, по крайней мере, «сантаграмма» и «ретэсэнекен» (на картинке помечены синим) присутствуют на своих местах (9 строка в тексте по ссылке, «σαντα, γραμματεύσαντα» и 20-я строка в тексте по ссылке, ἀρετῆς ἕνεκεν)
Я сам давно учил древнегреческий и мало, так что решил обратиться к переводчику, который нашел, что на Реддите говорят, что он лучше всего древнегреческий переводит так (там максимум 400 символов за раз перевести можно):
Переводчику, конечно, тоже веры не много, но тут уже ручками можно со словарем поработать (что мне лень). Но уже как минимум наводит на сомнения в правильности перевода ChatGPT.
«Главная проблема цитат в интернете в том, что люди сразу верят в их подлинность», В. И. Ленин. Из статьи:
Так сосиски же ещё к гречке. Ну и ожидание, пока вода закипит :)
Плюсую. Хотел заценить — зашёл на сайт, увидел, что там весь контент это видео, разочаровался, и ушел :(
P.S. По всей видимости, ни один из стандартных атрибутов нельзя применять к единице трансляции. Но для кастомных аттрибутов стандарт оставляет лазейку:
Видимо, упоминание о том, что атрибуты могут быть применены к единицам трансляции, писалось именно с этим attribute-declaration на уме, что реализация может определить, что он значит «применить атрибут к единице трансляции» и будет при своём праве.
Прочитал и задумался: а как это..? Погуглил стандарт и он правда говорит, что могут атрибуты применяться к единицам трансляции:
Но потом говорит:
А в какой позиции должен стоять атрибут, чтобы он применился к единице трансляции — так и не понял
Тут нет никакой оптимизации для trivially copyable. У вас тут буквально семантически эквивалентный код. Семантически эквивалентный, но вы во втором случае зачем-то делаете бесполезный piecewise construct.
Прозрачное сравнение это же не обязательно под строки? Концепт, подходящий только под частный случай — как-то не ок.
Почему вообще код (ниже процитирован код из статьи) закладывается на то, что K — это std::string?
Эээ.. Каким образом это вообще
insert
? Да, что вы разошлись — тут вы правыЭто если по поверхности пройтись.
Там в самой статье пишут, что участников исследования, которые заявили, что „ранее участвовали в подобных экспериментах“, исключали.
И что каждый из участников был экзаменующим максимум в 4 диалогах (от 1 до 4)
Новость про статью без ссылки на саму статью. Пришлось погуглить, вот: https://arxiv.org/abs/2503.23674
По разделу «Incremental Growth» в https://go.dev/blog/swisstable я понял, что размер Go-шной Swiss Table может вырасти максимум на 1024 за раз. А «не Swiss Table» реализация в Go удваивает своей размер: https://github.com/golang/go/blob/b70244ff7a043786c211775b68259de6104ff91c/src/runtime/map_noswiss.go#L1118, поэтому и такой график.
MSVC в общем не славится своими оптимизациями. Может, GCC или clang бы соптимизировал в один
Canvas[0][0]
@AskePitВы можете расшарить код на godbolt.org, чтобы проверить теорию? (clang trunk, по идее, все используемые вами фичи должен поддерживать точно; может, и gcc trunk, но не уверен)
Мурмуляцию*
4 из 5 вопросов — азы, которые подробно рассказываются в каждом учебнике. Интересные у вас собеседования.
В оригинале написано
Это не делает число менее странным, но кроме того там в комментариях есть пояснение:
Да что-то не компилируется..
50?