मेरे पास एक फ़ंक्शन है जो एक Func
देता है और मैं इनपुट बफ़र्स सेट करना चाहता हूं जिन्हें ImageParam
s के रूप में परिभाषित किया गया है। मुझे github repo से कोई ट्यूटोरियल/परीक्षण नहीं मिल रहा है जो इस प्रकार की सुविधा का उपयोग करता है। मैं एओटी में संकलित करने के लिए जेनरेटर का उपयोग कर सकता हूं और उसके बाद किसी अन्य प्रोग्राम को लिंक कर सकता हूं, लेकिन मुझे यकीन है कि बिना किसी संकलन के उसी उदाहरण में ऐसा करने का एक तेज़ तरीका है ... मुझे बस सही तरीका नहीं दिख रहा है!
मेरे द्वारा उपयोग किए जाने वाले कोड का टुकड़ा यहां दिया गया है:
//header
Func create_func();
//usage
Func f = create_func();
Buffer<uint8_t> input; //initialized somewhere
Buffer<uint8_t> output0; //initialized somewhere
Buffer<uint8_t> output1; //initialized somewhere
f.in(0).set(input); // I need to set the buffer here right?
f.realize({output0, output1});
संपादित करें: मुझे एक "वर्कअराउंड" मिला, जिसका अर्थ है कि मैं ImageParam
के संदर्भ को आउट पैरामीटर के रूप में पास करता हूं:
ImageParam p;
create_func(&p);
p.set(input);
लेकिन ऐसा लगता है कि धोखा है ना? यदि संभव हो तो मैं वास्तव में Func
से इनपुट पैरामीटर खींचना चाहूंगा...
1 उत्तर
आपका समाधान धोखा नहीं दे रहा है, और मैं कहूंगा कि एक संदर्भ द्वारा पारित परम में, एक आउट परम नहीं। इच्छित उपयोग है:
ImageParam input;
Func output = create_func(input);
... later
input.set(some_actual_image);
output.realize(...);
यदि आप बस कुछ वस्तु को उसके इनपुट के साथ वापस लेने योग्य गुणों के रूप में उजागर करना चाहते हैं, तो आप यह कर सकते हैं:
struct MyPipeline {
ImageParam input1, input2;
Func output;
MyPipeline() {
output(x, y) = ...
}
};
MyPipeline p;
p.input1.set(foo);
p.output.realize(...);
यह सिर्फ जेनरेटर का उपयोग करने के बहुत करीब है।
संबंधित सवाल
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।
create_func()
को कैसे परिभाषित किया जाता है? लौटा हुआFunc
किस इनपुट का उपयोग करता है? यह कुछ इस तरह दिखना चाहिएFunc create_func( Func input ) { Func result("myFunc"); result( x, y ) = input( x, y ); return result; }
या आप एक खाली Funcresult
बना सकते हैं और इसे create_func में पास कर सकते हैं ताकि प्रत्येक परिणाम का अपना नाम हो सके।