I've been coding for a long time, and never have I faced this error message before. I am writing a compiler for a language that dynamically compiles itself on other platforms.. while the specifications for that are not the problem, it's an odd problem I got when I tried "modularizing" my applications with C++ and classes.
Type.hppCode:struct Type ; struct Class ; struct Function ; struct Variable ; struct Definition ; typedef std::deque<std::string> StringList ; typedef StringList::iterator RegisteredString; typedef std::deque<Type> TypeList ; typedef TypeList::iterator RegisteredType; typedef std::deque<Class> ClassList ; typedef ClassList::iterator RegisteredClass; typedef std::deque<Variable> VariableList ; typedef VariableList::iterator RegisteredVariable ; typedef std::deque<Function> FunctionList ; typedef FunctionList::iterator RegisteredFunction ; enum Level { Private, Public, Protected } ; #include <Type.hpp> // requires class #include <Variable.hpp> // requires type #include <Function.hpp> // requires type / variable #include <Class.hpp> // requires variable / function #include <Definition.hpp> // requires everything
Variable.hppCode:struct TETRA Type { RegisteredClass rc ; dword array_depth ; dword flags ; operator == (const Type & t) ; operator != (const Type & t) ; } ;
Function.hppCode:struct TETRA Variable { RegisteredString name ; RegisteredType type ; Level level ; operator== (const Variable & v) ; operator!= (const Variable & v) ; operator== (const Function & f) ; operator!= (const Function & f) ; operator== (const Class & c) ; operator!= (const Class & c) ; operator std::string () ; } ;
Class.hppCode:struct TETRA Function { RegisteredString name ; RegisteredType type ; Level level ; VariableList arguments ; VariableList variables ; RegisteredVariable AddVariable (const Variable & v) ; RegisteredVariable AddArgument (const Variable & v) ; operator== (const Variable & v) ; operator!= (const Variable & v) ; operator== (const Function & f) ; operator!= (const Function & f) ; operator== (const Class & c) ; operator!= (const Class & c) ; operator std::string () ; } ;
Definition.hpp ( I don't think it matters, but whatever. )Code:struct TETRA Class { RegisteredString name ; VariableList members ; FunctionList functions ; operator== (const Variable & v) ; operator!= (const Variable & v) ; operator== (const Function & f) ; operator!= (const Function & f) ; operator== (const Class & c) ; operator!= (const Class & c) ; operator std::string() ; RegisteredVariable AddMember (const Variable & v) ; RegisteredFunction AddFunction (const Function & f) ; } ;
I get about ~60 error messages from the headers, usually something likeCode:struct TETRA Definition { StringList strings ; TypeList types ; ClassList classes ; Definition () ; RegisteredType AddType (const Type & t) ; inline idx GetTypeIndex (const RegisteredType rt) { return (idx) (rt - types.begin()) ; } void ReadTypes (std::istream & is, dword count) ; void WriteTypes (std::ostream & os) ; RegisteredString AddString (const std::string & s) ; inline idx GetStringIndex (const RegisteredString rs) { return (idx) ( rs - strings.begin () ) ; } void WriteStrings (std::ostream & os) ; void ReadStrings (std::istream & is, dword count) ; RegisteredClass AddClass (const Class & c) ; RegisteredClass FindClass (const std::string & s) ; RegisteredClass FindClass (const RegisteredString s) ; void Read (std::istream & is, dword flags) ; void Write (std::ostream & os, dword flags) ; ~Definition () ; } ;
Compiling with Intel C++ 8.0
String.cpp
c:\Program Files\Microsoft Visual Studio .NET\Vc7/include/deque(59): error: incomplete type is not allowed
_DEQUESIZ = sizeof (_Ty) <= 1 ? 16
^
detected during instantiation of class "std::deque<_Ty, _Ax> [with _Ty=Tetra::Type, _Ax=std::allocator<Tetra::Type>]" at line 49 of "D:\tetra\runtime\Tetra.hpp"
I can paste them all if necessary, I don't want the flood this topic however. Any help is appreciated, and if you have questions about what I am doing in the code just ask. My forte is C and lowish level stuff, I'm really just now starting to dabble in STL and C++.
Thanks in advance.



LinkBack URL
About LinkBacks


