Станд.:: свяжите не буду использоваться.
Станд.:: свяжите не буду использоваться.
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
.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.