> Неоднозначно:
> 1. atomic operations - с одной стороны хорошо: стандартизация атомарных операций; с
> другой плохо: атомарные операции будут определены в userland. Непонятно как это
> скажется на производительности по сравнению с POSIX mutex-ами. Но уже хорошо,
> что для использования атомарных операций, необходим специфический синтаксис, - пересечений
> и конфликтов с существующей кодовой базой использующей POSIX threads wrappers небудет
> ... Или всё-таки будет если код будет смешаным ? Неясно.
atomics и mutexes --- это, мммм, совсем разные вещи. В связи с атомиками в стандарте описаны 'модели памяти' (с отсылками к понятиям причинности событий --- см. работы по 'виртуальной синхронности'). Если их не читать/не понимать, то получается ... --- см. пост выше. Т.н. 'гарантии', в зависимости от модели памяти, в атомиках весьма сложны и нетривиальны для понимания (и неочевидны). А будут ли эти 'неочевидности' вылезать --- сильно от железа зависит.
Видимо, пришлось вводить атомики из-за весьма распространёённых (в большинстве некорректных и опасных) практик со smart-указателями и т.н. lock-free алгоритмами.
> 2. Rvalue references - зрэ это они. Стандартная семантика lvalue/rvalue проста как
> топор, и слава богу! Введение move запутает семантику, и в
> резулътате уменьшает прозрачность кода.
Rvalue references совершенно необходимы для вменяемого описания move-семантики (практическое применение --- оооочень влияет на производительность, если объект удовлетворяет определённым ограничениям).