映射上的模板参数无效 std::map< std::string, Stock*> &Stock

Invalid template arguments on map std::map< std::string, Stock*> &stocks

本文关键字:Stock std lt gt string map 参数 映射 无效      更新时间:2023-10-16

我有声明(或类似)

std::map< std::string, Stock*> &stocks;

在我的整个代码中。Eclipse 不喜欢这样,并产生"无效的模板参数"错误。

库存声明为:

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();
};

我看不出这个声明有什么无效的,它编译得很好。我错过了什么,而 Eclipse 正在捕捉什么吗?

简短的自包含正确示例

#include <string>
#include <map>
#include "stock.h"
int main() {
  std::map<std::string, Stock*> stocks;
}
原来

是日食错误。创建一个新项目并重新按照 Eclipse CDT C++11/C++0x 支持对它进行排序的步骤进行操作。