Я уверен, что на практике использование ::new
является потокобезопасным. Мой вопрос заключается в том, какая часть стандарта обеспечивает эту гарантию, если таковая имеется? Это конвенция? Является ли это чем-то, где стандарт дает реализаций много широты (например, относительно свободные ограничения на размер каждого типа данных) для поддержки широкого спектра аппаратного обеспечения?Безопасность потоков :: new в C++ 11
Я надеюсь, что в стандарте C++ 11 есть только строка, которая явно указывает, что «реализация ::new
должна быть потокобезопасной».
Я также хотел бы увидеть некоторые стандартизированные сведения о безопасности потоков новых рабочих перегрузок. Я полагаю, что они также должны были быть обязательными, чтобы быть потокобезопасными, но эти функции также не подпадают под гарантию на одеяло, что const => thread safe (в C++ 11).
Спасибо!
Почему стандарт гарантирует, что вы перегружаете _your_ 'operator new' потоком? Ваша программа, ваши проблемы. – MSalters
@MSalters - по той же причине, что и const => thread-safe. Потому что, не гарантируя гарантии в коде, вы не можете безопасно взаимодействовать со стандартной библиотекой. Можете ли вы стрелять в ногу? Да, как и все что угодно на C++ ... но это почти не имеет значения. – Mark