के भीतर से मैं एक हेडर फाइल के भीतर निम्न विधि बुला लिया गया गया है कॉल नहीं कर सकते 'filter.h':सी ++ विधि (टेम्पलेट के साथ) टेम्प्लेटेड विधि
namespace std{
//some code
template <class T, class S, class BorderMethod>
tImage<T> binomial(const tImage<T> &in, const size_t k = 3) {
//do some computations
tImage<T> img = in.convolve<T, BorderMethod>(in, kernel);
return img;
}
}
पहली बात मैंने देखा है: की परिभाषा यह विधि हेडर-फ़ाइल के भीतर होती है। क्या वह मानक प्रक्रिया है?
अब, वास्तविक समस्या: विधि convolve
पर कॉल काम नहीं करेगा, भले ही in
में ऐसी विधि हो।
tImage<T> convolve(const gravis::tImage<T>& image, const gravis::tArray<typename tImageTraits<T>::Float_t>& kernel);
मैं इस कार्य को करने के लिए क्या है: यहाँ विधि convolve
की परिभाषा वर्ग tImage<T>
भीतर है?
'in'' const' तर्क है, इसलिए गैर-'const' सदस्य फ़ंक्शन पर इसका आह्वान नहीं किया जा सकता है। – hmjd
'द्विपदीय' लगता है कि 'convolve' एक फ़ंक्शन टेम्पलेट है, लेकिन' convolve' फ़ंक्शन टेम्पलेट (केवल टेम्पलेट क्लास का सदस्य फ़ंक्शन) जैसा नहीं दिखता है। – aschepler
आपका नाम 'नेमस्पेस std' में क्यों है? 'Std' नेमस्पेस (विशेषज्ञता के अलावा) में जोड़ना अवैध है। – Praetorian