मुझे कक्षा टेम्पलेट के साथ कोई समस्या है। मैं यानी सांख्यिक प्रकार के कुछ प्रकार की वैक्टर का एक वेक्टर, होना करने के लिए एक कक्षा में निजी डेटा हैं:सी ++ वर्ग टेम्पलेट एक टेम्पलेट है: टेम्पलेट तर्क अमान्य है
std::vector<std::vector<double> >
std::vector<std::vector<std::complex<double> > >
लेकिन मैं के साथ (मैं तीसरे पक्ष वैक्टर का एक पुस्तकालय का उपयोग कर रहा वेक्टर के प्रकार चाहते हैं एसटीएल वैक्टर), और तत्व प्रकार टेम्पलेट किया जाना चाहिए। मैंने टेम्पलेट टेम्पलेट्स की कोशिश की लेकिन अब मुझे नहीं लगता कि यह मेरी समस्या का समाधान है। एक अत्यधिक सरल उदाहरण है:
#include <complex>
#include <vector>
template<typename T>
class Fred {
std::vector<T> data_;
};
int main(){
Fred<std::vector<double> > works;
//Fred<std::vector<std::complex<double> > doesnt_work;
return 0;
}
दिखाया गया है यह ठीक संकलित, लेकिन अगर मैं मुख्य में दूसरी पंक्ति uncomment, मैं त्रुटि (छ ++ 4.6) मिलती है:
error: template argument 1 is invalid
क्यों मैं इस मिलता है त्रुटि? और क्या किसी ने सुझाव दिया है? धन्यवाद!
उस पंक्ति में '<' s और '>' की गणना करें जो काम नहीं करता है। एक गायब है ... –
यह वास्तव में एक खराब त्रुटि संदेश है, पूरी तरह से भ्रामक है। –
@PeteBecker: शर्म। मैं अपने [टेम्पलेट रिबाइंडर] को खोदने के लिए तैयार हो रहा था (http://stackoverflow.com/a/11723847/596781)। –