Можете ли вы специализировать std :: unique_lock - PullRequest
0 голосов
/ 11 октября 2018

У мьютекса, который мы используем, странный интерфейс (например, странный корпус).Наличие специализации для std::unique_lock поможет уменьшить когнитивные издержки при использовании этого мьютекса.

Я не смог найти в стандарте ничего, что позволяло бы специализировать std::unique_lock.Размышляя об этом, я не вижу никаких минусов в разрешении специализаций std::unique_lock.Может ли кто-то подтвердить, что он действительно не определен стандартом (и, следовательно, неопределенным поведением, следуя приведенной здесь цитате https://stackoverflow.com/a/8513497)?

Если это разрешено, может кто-нибудь указать мне на раздел в стандарте, в котором говорится, что?

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете специализироваться std::unique_lock для своего собственного типа мьютекса:

[namespace.std] / 1

Программа может добавить шаблон специализациидля любого стандартного шаблона библиотеки в пространство имен std, только если объявление зависит от типа, определенного пользователем, и специализация соответствует требованиям стандартной библиотеки для исходного шаблона и явно не запрещена.

Ничего враздел для std::unique_lock, чтобы явно запретить специализацию.Таким образом, применяется общее правило.

...