Ich habe die Erklärung (oder ähnlich)Ungültige Vorlage Argumente auf der Karte std :: map <std :: string, Stock *> & Aktien
std::map< std::string, Stock*> &stocks;
in meinem Code. Eclipse mag dies nicht und erzeugt einen Fehler "Ungültige Vorlagenargumente".
Stock ist erklärt, wie:
class Stock {
public:
Stock(std::string, qbbo::Financial_status_indicator, qbbo::Security_class,
qbbo::Current_trading_state,
qbbo::Market_category, qbbo::Reg_sho_action);
~Stock();
void setFinancialStatusIndicator(qbbo::Financial_status_indicator financialStatusIndicator);
void setSecurityClass(qbbo::Security_class securityClass);
void setCurrentTradingState(qbbo::Current_trading_state tradingState);
void setMarketCategory(qbbo::Market_category marketCategory);
void setREGShoAction(qbbo::Reg_sho_action regSHOAction);
bool isStockTrading();
private:
enum StockState {
STOCK_STATE_OK, STOCK_STATE_UNKNOWN, STOCK_STATE_UNEXPECTED_CHARACTERISTIC
};
std::string name;
int inventory;
StockState currentState;
// Expected values initialised in constructor
qbbo::Financial_status_indicator expectedFinancialStatusIndicator;
qbbo::Security_class expectedSecurityClass;
qbbo::Current_trading_state expectedCurrentTradingState;
qbbo::Market_category expectedMarketCategory;
qbbo::Reg_sho_action expectedRegSHOAction;
// Actual values as set by messages
qbbo::Financial_status_indicator financialStatusIndicator;
qbbo::Security_class securityClass;
qbbo::Current_trading_state currentTradingState;
qbbo::Market_category marketCategory;
qbbo::Reg_sho_action regSHOAction;
void nextState();
};
ich nicht was für ungültig zu dieser Erklärung sehen kann und es kompiliert in Ordnung. Gibt es etwas, das ich vermisse und Eclipse fängt?
Short Self Contained Correct Beispiel
#include <string>
#include <map>
#include "stock.h"
int main() {
std::map<std::string, Stock*> stocks;
}
Wird Ihre Klasse deklariert, bevor Sie 'map' verwenden? – Pubby
Solange Sie Ihre Referenz korrekt initialisieren, ist Ihr Code AFAICT nicht falsch. Ich habe mir den Code von 'Stock' nicht angeschaut, da dieser wahrscheinlich irrelevant ist: Da du Zeiger speicherst, genügt sogar eine einfache Vorwärtsdeklaration (siehe [hier] (http://ideone.com/Vzg2w)). Sie müssen weitere Informationen angeben, idealerweise ein [SSCCE] (http://homepage1.nifty.com/algafield/sscce.html). –
Wird 'std :: string' deklariert, bevor Sie' map' verwenden? –