คำถามติดแท็ก specialization

6
ความเชี่ยวชาญเทมเพลตของวิธีการเดียวจากคลาสเทมเพลต
พิจารณาเสมอว่าส่วนหัวต่อไปนี้ซึ่งมีคลาสเทมเพลตของฉันรวมอยู่ใน.CPPไฟล์อย่างน้อยสองไฟล์โค้ดนี้คอมไพล์อย่างถูกต้อง: template <class T> class TClass { public: void doSomething(std::vector<T> * v); }; template <class T> void TClass<T>::doSomething(std::vector<T> * v) { // Do something with a vector of a generic T } template <> inline void TClass<int>::doSomething(std::vector<int> * v) { // Do something with a vector of int's } แต่สังเกตอินไลน์ในวิธีการเฉพาะ …

2
ความเชี่ยวชาญอย่างชัดเจนของฟังก์ชันสมาชิกคลาสเทมเพลต
ฉันต้องการความเชี่ยวชาญในฟังก์ชันสมาชิกเทมเพลตสำหรับบางประเภท (สมมติว่าdouble ) ทำงานได้ดีในขณะที่คลาสXไม่ใช่คลาสเทมเพลต แต่เมื่อฉันสร้างเทมเพลต GCC เริ่มให้ข้อผิดพลาดเวลาคอมไพล์ #include <iostream> #include <cmath> template <class C> class X { public: template <class T> void get_as(); }; template <class C> void X<C>::get_as<double>() { } int main() { X<int> x; x.get_as(); } นี่คือข้อความแสดงข้อผิดพลาด source.cpp:11:27: error: template-id 'get_as<double>' in declaration of primary template source.cpp:11:6: error: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.