Problém spojující vektoru třídu

hlasů
1

Mám velký projekt s partou .cc souborů, které mají většinou c kód a některé kódu jazyka C ++. Chci použít vektor v tomto programu, protože musím nespoutaný datový typ, který je jednoduchý, aby 2d (jinými slovy nechci použít pole nebo seznam). Problém je, že když jsem běžet můj make Po zahrnující vektorovou třídu I dostat chyby, které jsem nedostal dříve. Jediná linka, která dělá žádný rozdíl je #include <vector>. Jsem nepsal make soubory (a tam jsou asi 4 nebo 5 z nich), ale do mého nejlepšího vědomí je pomocí GNU překladače. Nemám vektorové objekty instance, již zahrnuta using namespace std;i chyba zmizí, když jsem komentář mimo direktivy patří vektoru. Na jiný soubor v tomto projektu nicméně jsem použil knihovnu fronty a neměl žádný problém s ním. Problém se stane, když jsem zahrnout do h souboru, nemá problém s .cc soubory, ale vzhledem k tomu budu potřebovat k vytvoření instance vektorového objektu v .h souboru nemám komoditě pouze pomocí .cc soubory pro tohle. Může mi někdo dát nějakou pomoc pro tento problém?

Zde je výstup zkopírován vložit z bash pro tu část, která vede až k chybě:

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads/main.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads
/scheduler.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads/synch.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads
/system.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads
/thread.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../threads
/threadtest.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../machine
/interrupt.cc

g++ -g -Wall -m32 -Wshadow -I../bin -I../filesys -I../userprog -I../threads -I../machine 
-DUSER_PROGRAM -DFILESYS_NEEDED -DFILESYS_STUB -DHOST_i386 -DCHANGED -c ../machine
/sysdep.cc

In file included from /usr/include/c++/4.4/vector:61,

                 from ../threads/system.h:19,

                 from ../machine/sysdep.cc:77:

/usr/include/c++/4.4/bits/stl_algobase.h:232:56: error: macro min passed 3 arguments, 
but takes just 2

/usr/include/c++/4.4/bits/stl_algobase.h:253:56: error: macro max passed 3 arguments, 
but takes just 2

In file included from /usr/include/c++/4.4/vector:61,

                 from ../threads/system.h:19,

                 from ../machine/sysdep.cc:77:

/usr/include/c++/4.4/bits/stl_algobase.h:186: error: expected unqualified-id before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:186: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:186: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:186: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:186: error: expected initializer before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:209: error: expected unqualified-id before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:209: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:209: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:209: error: expected ‘)’ before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:209: error: expected initializer before ‘const’

/usr/include/c++/4.4/bits/stl_algobase.h:232: error: ‘std::min’ declared as an ‘inline’ 
variable

/usr/include/c++/4.4/bits/stl_algobase.h:232: error: template declaration of ‘const _Tp& 
std::min’

/usr/include/c++/4.4/bits/stl_algobase.h:235: error: expected primary-expression before 
‘if’

/usr/include/c++/4.4/bits/stl_algobase.h:235: error: expected ‘}’ before ‘if’


/usr/include/c++/4.4/bits/stl_algobase.h:237: error: expected unqualified-id before 
‘return’

/usr/include/c++/4.4/bits/stl_algobase.h:253: error: ‘max’ declared as an ‘inline’ variable

/usr/include/c++/4.4/bits/stl_algobase.h:253: error: template declaration of ‘const _Tp& 
max’

/usr/include/c++/4.4/bits/stl_algobase.h:256: error: expected primary-expression before 
‘if’

/usr/include/c++/4.4/bits/stl_algobase.h:256: error: expected ‘}’ before ‘if’

/usr/include/c++/4.4/bits/stl_algobase.h:258: error: expected unqualified-id before 
‘return’

/usr/include/c++/4.4/bits/stl_algobase.h:259: error: expected declaration before ‘}’ token


make[1]: *** [sysdep.o] Error 1

make[1]: Leaving directory `/home/f85/njvanbal/workspace/nachos2/userprog'

make: *** [all] Error 2
Položena 24/10/2010 v 17:27
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Vždy nejlepší podívat se zpět k první chybě prvního; ve vašem případě:

/usr/include/c++/4.4/bits/stl_algobase.h:232:56: error: macro "min" passed 3 arguments, 
but takes just 2
/usr/include/c++/4.4/bits/stl_algobase.h:253:56: error: macro "max" passed 3 arguments, 
but takes just 2

Vypadá to, že jste definovali makro (nebo možná funkce) s názvem mina maxve svém vlastním kódu. #includePro vectorzřejmě také definuje makro pro mina maxa kompilátor je stále zmatená. Změna názvu svých mina maxmaker.

Odpovězeno 24/10/2010 v 17:41
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more