Путаница в отношении семантики ценности Bind :: Bind's ValueC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Путаница в отношении семантики ценности Bind :: Bind's Value

Сообщение Anonymous »

Я видел, как многие люди утверждали, что аргументы в отношении std :: bind являются копиями, следовательно, привязывание к выписки метода к объекту, срок службы которого превышает нормально, потому что аргументы были скопированы, когда был создан функтор. Тем не менее, осмотр подписи STD :: Bind четко показывает, что сама функция использует универсальные ссылки. Исследование CPPREEFERFEREFERE Я обнаружил следующие операторы: < /p>

Когда g < /code> вызывается [...] значения и типы связанных аргументов , v2 , ..., vn определяются, как указано ниже. invoke Операция определяется следующим образом:

Поскольку я не говорю о reference_wrappers, заполнители или привязки к применению. Вызываемый объект как аргумент lvalue: v_i -это просто arg_i и его тип v_i -это t cv & , где CV-это то же самое CV-квалификация, что и у G .

из-за того, что я мог собрать, что мое согласие. b.) Опиренные аргументы не исключают друг друга, потому что копия не происходит, когда называется std :: bind, но вместо этого создается функциональный объект. Я предполагаю, что это то, что подразумевается, когда CPPReerference далее вниз в «Примечаниях»: Аргументы для привязки копируются или перемещаются, и никогда не передаются с помощью ссылки, если только не обернута в std :: ref или std :: crea Создан правильным? Куда проходила ссылка, которая все еще отображалась здесь?


Подробнее здесь: https://stackoverflow.com/questions/796 ... -semantics
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»