Я пытаюсь понять этот фрагмент кода.
stream->set_result(cisco::efm_sdk::UniqueActionResultPtr{
new cisco::efm_sdk::ActionValuesResult{cisco::efm_sdk::ActionValuesResult(cisco::efm_sdk::ActionError)
.add_value(false)
.add_value("Could not set value")}});
Найдено в:
https://github.com/CiscoDevNet/kinetic-efm-cpp-sdk/blob/master/efm-cpp-sdk-1.0.15-ie4k-dslink-dev/examples/simple_responder/main.cpp
Я понимаю, что один объект создается с использованием new cisco::efm_sdk::ActionValuesResult
так что объект выживет за пределами области лямбды, в которой он создан.Или, по крайней мере, я верю, что именно поэтому это делается.
Но я не понимаю, почему он передается в экземпляре самого себя, когда документы не указывают, что у него есть конструктор, который может принимать такой параметр.
Я быПодумайте, что такая строка:
stream->set_result(cisco::efm_sdk::UniqueActionResultPtr{
new cisco::efm_sdk::ActionValuesResult(cisco::efm_sdk::ActionError)
.add_value(false)
.add_value("Could not set value")});
на самом деле имеет больше смысла.Я включил снимок экрана с документами.И они находятся здесь онлайн:
https://github.com/CiscoDevNet/kinetic-efm-cpp-sdk/blob/master/efm-cpp-sdk-1.0.15-ie4k-dslink-dev/docs/index.html
Заранее спасибо, и мои извинения, если я упускаю что-то основное.
-Роберт Байндуров