std:: bind не должен использоваться
std:: bind не используется.
std::bind
принимает вызываемый объект, такой как объект функции, и создает оболочку переадресационного вызова для этого объекта. Вызов оболочки вызывает объект с некоторыми аргументами объекта, связанными с аргументами, заданными в оболочке. Например, в этом фрагменте кода, foo
вызывается через bar
с первым (вторым) аргументом bar
привязка ко второму (первому) аргументу foo
.
int foo(int, int); auto bar = std::bind(foo, _2, _1); bar(10, 20); //call to foo(20, 10) |
Использование std::bind
приводит к менее читаемому вызову функции. Разработчик, который не знаком с foo
нужно будет увидеть декларацию foo
чтобы понять, как передать аргументы в bar
, и может спутать один параметр функции с другим. В сложение компилятор реже вводит функцию, которую вы создаете используя std::bind
.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: 18 Language Support Library |
Категория: Необходимый, Автоматизированный |