I’m confused about this compile-time error I’m getting when running
g++ -std=c++0x dtpulse.cpp dtpulse.hpp test.cpp -o a.out
:
dtpulse.cpp: In constructor ‘LaundrySoupSequence::LaundrySoupSequence(std::string)’:
dtpulse.cpp:442: error: conflicting declaration ‘LaundrySoupSequence calculatedTokens’
dtpulse.cpp:424: error: ‘calculatedTokens’ has a previous declaration as ‘std::vector<Token, std::allocator<Token> > calculatedTokens’
Here are the constructors defined in dtpulse.cpp
:
419 LaundrySoupSequence::LaundrySoupSequence() {
420 LaundrySoupSequence("");
421 }
422 LaundrySoupSequence::LaundrySoupSequence(std::string expr) {
423 std::vector<Token> defaultStack;
424 std::vector<Token> calculatedTokens;
425 defaultStack.push_back(Token("Error", "error", -1));
426 if (expr != "") {
427 Parser p = Parser(expr);
428 p.setForLaundry();
429 if (p.inError || !p.tokenStack.size()) {
430 calculatedTokens = defaultStack;
431 inError = true;
432 }
433 else {
434 calculatedTokens = p.tokenStack;
435 inError = false;
436 }
437 }
438 else {
439 calculatedTokens = defaultStack;
440 inError = false;
441 }
442 LaundrySoupSequence(calculatedTokens);
443 }
444 LaundrySoupSequence::LaundrySoupSequence(std::vector<Token> tokens) {
445 tokenStack = tokens;
446 pulseSequence = makePulseSequence(tokenStack);
447 workingPulseSequence = duplicateIntVector(pulseSequence);
448 numSteps = (int) pulseSequence.size();
449 readHead = -1;
450 }
My header file, dtpulse.hpp
properly defines the constructors, and the calculatedTokens
variable appears nowhere else in the code. Any help would be greatly appreciated!