c++初心者です。
以下のc++の構造体に似たコードがあります。
このgithubのdemo_yolov3_tiny.cppの156行目です
このコードの意味を理解したいんですが、意味がよく理解できません。
c++
1#include <xilinx/ai/dpu_task.hpp> 2#include <xilinx/ai/nnpp/yolov3.hpp> 3auto task = [] { 4 std::lock_guard<std::mutex> lock(mtx_); // Important! 5 return xilinx::ai::DpuTask::create(KERNEL_NAME); 6 }();
構造体の形をしてるのに、なぜtask
の後にリストのようなカッコがあるのでしょうか?
この構造体の使い方は、宣言したあと、returnで返される値がtaskに格納されており、APIのメンバ変数にアロー演算子でアクセスしていくという使い方をしていると思います。(returnで呼び出してるのはDPUというカーネルです)
・returnで呼び出されるdpu API
・dpu_task.hpp
・taskの使い方
c++
1task->setMeanScaleBGR({0.0f, 0.0f, 0.0f}, {0.00390625f, 0.00390625f, 0.00390625f}); 2 3auto input_tensor = task->getInputTensor(0); 4 5task->setImageRGB(image);
この部分について質問なのですが、
質問
Q1. これは構造体なんでしょうか?だとしたらなぜtaskの、あとにリストのカッコがついてるんでしょうか?
Q2. returnで返ってくる処理は、この構造体らしきものが宣言または、メンバ変数にアクセスするという形で実行された時に、呼び出されるというので間違ってませんか?または、returnが呼び出されるのは、宣言か実行のどちらのときでしょうか?
教えて下さい、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。