1. Newsletter Вадима Кравченко про документацию. Довольно годный.
2. Какая-то приконая статья про организационные структуры. Понравилась из-за конкретной истории в качестве примера.
3. Статья про различные способы организации транзакций.
4. Про статус C++26 и несколько интерсных пропозалов: link.
5. API Evolution Without Versioning.
Тут конечно немножко обман, потому что я почему-то ожидал какую-то хорошую альтернативу, но увидел знакомые вещи, которые мы используем регулярно рядом с обычным подходом с версиями. Версии кстати очень больно. Даже в нашем случае, когда клиентов не очень много. Потому что и их хватает, чтобы поддерживать легаси год+, пока все не перейдут.
===========================
6. Тут на днях пытались понять, почему такой код (https://godbolt.org/z/v55f5zW6o) падает на ассерте. Потому что если зайти на cppreference/rehash, можно увидеть текст
Sets the number of buckets to count and rehashes the container, i.e. puts the elements into appropriate buckets considering that total number of buckets has changed. If the new number of buckets makes load factor more than maximum load factor (count < size() / max_load_factor()), then the new number of buckets is at least size() / max_load_factor().Который я читаю следующим образом:
- кол-во бакетов становится count;
- если max_load_factor превышается, кол-во бакетов увеличивается, чтобы не превышался.
Стандарт же говорит немного по-другому:
a.rehash(n)
Postconditions: a.bucket_count() >= a.size() / a.max_load_factor() and a.bucket_count() >= n.Т.е. кол-во бакетов нестрого больше минимального необходимого количества. Что вообще-то означает, что может быть вполне себе + один/сто/миллион бакетов сверху.
Эх. И не поправить сппреф🥳❌