एक incomplete typeत्रुटि तब होती है जब कंपाइलर एक पहचानकर्ता के उपयोग का सामना करता है जिसे वह जानता है कि यह एक प्रकार है, उदाहरण के लिए क्योंकि उसने इसे (जैसे class stringstream;) की एक अग्रगामी घोषणा देखी है , लेकिन इसके लिए पूर्ण परिभाषा नहीं देखी है class stringstream { ... };।
यह उस प्रकार के लिए हो सकता है, जिसे आपने अपने कोड में उपयोग नहीं किया है, लेकिन इसमें शामिल हेडर फ़ाइलों के माध्यम से मौजूद है - जब आपने हेडर फ़ाइलों को शामिल किया है जो टाइप का उपयोग करते हैं, लेकिन हेडर फ़ाइल का नहीं जहां प्रकार परिभाषित किया गया है। किसी हेडर के लिए यह असामान्य है कि वह स्वयं उन सभी हेडर को शामिल न करे जिनकी आवश्यकता है, लेकिन असंभव नहीं है।
मानक पुस्तकालय से चीजों के लिए, जैसे stringstreamकक्षा, कक्षा के लिए भाषा मानक या अन्य संदर्भ प्रलेखन या व्यक्तिगत कार्यों (जैसे यूनिक्स manपृष्ठ, MSDN पुस्तकालय, आदि) #includeका उपयोग करके यह पता लगाने के लिए कि आपको इसका उपयोग करने की आवश्यकता है और क्या है। नेमस्पेस यह किसी भी में खोजने के लिए। आपको उन पृष्ठों की खोज करने की आवश्यकता हो सकती है जहाँ वर्ग नाम प्रकट होता है (उदा man -k stringstream)।