TGViewer
this->notes. this->notes. @thisnotes · 4.52K subscribers
Post #155 970
#list

1. Оч забавный факт, что до C++11 не оставить пустую строку в конце хедера приводило к ub. Препроцессор был настолько глупым, что не догадывался вставить после директивы include перевод строки. Пример:

Imagine foo.h:

blah blah blah<no newline>

Now bar.c:

#include "foo.h"
#include "grill.h"

Result:

blah blah blah#include "grill.h"


Прикиньте, если последней строкой шёл комментарий.

2. Немного пропозалов:

- =delete("message"): добавление сообщения при удалении метода/перегрузки;
- добавление saturation arithmetic (это когда все операции ограничены каким-то диапазоном значений);
- разрешить static_assert(false). Сейчас вот такой код не скомпилируется:

if constexpr (true) {
int x;
} else {
static_assert(false);
}


Иногда хочется, чтобы работало. Для обхода используют некоторый контекстозависимый trait:

static_assert(!std::is_same<T, T>::value);

- explicit lifetime managment.

3. Два интересных предложения от рускоязычного сообщества:

- новые математические функции: std::sincos, std::invsqrt, std::rem;
- запретить удаление incomplete классов.

4. На одном из докладов Highload++ чувак из Яндекс Go рассказывал, как они ускорялись. И одним из методов были так называемые hedged requests: сначала вы посылаете запрос (на более подходящую реплику, если у вас есть такая информация), а после него с какой-то небольшой задержкой повторяете (куда-нибудь ещё). В итоге у вас есть несколько запросов, которые выполняются наперегонки. Как только приходит первый ответ, берём его результат и игнорируем остальные. Прикона.

5. Иногда пишут двусвязные списки как xor-листы. В таком случае вместо двух указателей next prev хранится их xor. Таким образом вы можете перемещаться по листу только от начала до конца. Если же вы попали в какую-то ноду случайно, вы не сможете получить адреса её соседей.
  • 👍 15
  • ❤ 1
More from @thisnotes
  1. Sep 17, 2026#common Сидите вы себе спокойно, разрабатываете поиск каких-нибудь объектов. Может это тов…
  2. Sep 9, 2026#cpp #books Да, книга 2001ого года. Мы ровесники. И да, в ней в основном обсуждаются какие…
  3. Sep 2, 2026#perf Попробовал собрать в кучку (кажется, немного сумбурно всё же) мысли по двум моментам…
  4. Aug 31, 2026Давайте новый тег заведём: #perf Во-первых, надо понять, что я вообще понимаю под перфом,…
  5. Aug 27, 2026#common Мы часто делаем системы, которые обладают какими-то ограничениями. Ограничения наш…
  6. Aug 24, 2026#list 0. [talk] Achieving Peak Performance for Matrix Multiplication in C++. Aliaksei Sala…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →