Довольно хорошо известно, что поведение std:: bind и std:: thread по умолчанию заключается в том, что он будет копировать (или перемещать) переданные ему аргументы и использовать ссылочную семантику, нам придется использовать ссылочные оболочки.
-
Кто-нибудь знает, почему это делает хорошее поведение по умолчанию? Особенно в С++ 11 с ссылкой на rvalue и безупречной пересылкой мне кажется, что имеет смысл просто отлично форсировать аргументы.
-
std:: make_shared, хотя не всегда копирует/перемещает, а просто отлично передает предоставленные аргументы. Почему здесь есть два, казалось бы, различного поведения аргументов пересылки? (std:: thread и std:: bind, которые всегда копируют/перемещают vs std:: make_shared, которые этого не делают)