我是一名 .Net C# 程序员,尝试使用 C++ 进行编程。我有一个使用第三方库的应用程序。当我尝试在该库的函数中使用库中的枚举时,我收到一条类型不允许的错误消息:
我已经包括了图书馆:
#include <Trading.h>
using namespace Trading;
Run Code Online (Sandbox Code Playgroud)
Trading.h 包括 Enumerations.h,其中包含:
/// Returns string representation.
FOO std::string enumToString (TimeInForce::Enum);
/// Trading session event type.
struct FOO TradSesEvent
{
/// @copydoc TradSesEvent
enum Enum
{
...
};
};
Run Code Online (Sandbox Code Playgroud)
Application.cpp 的代码简化为问题:
#include <Trading.h>
using namespace Trading;
class Application
{
public:
Application(const Settings& settings) : settings_(settings)
{
orderBook_.reset(new OrderBook());
...
}
private:
// Store of orders sent to counterparty.
PtrTraits<OrderBook>::UniquePtr orderBook_;
void onSendNewOrder(Order& newOrder)
{
//create unique_ptr to fill in the order values and sen
PtrTraits<Order>::UniquePtr order(new Order(orderBook_->newId()));
order->timeInForce = TimeInForce.Day;
...
}
};
Run Code Online (Sandbox Code Playgroud)
错误信息:
struct Application::TimeInForce 类型名称不允许C/C++(254)
命名在类或命名空间中声明的无作用域枚举的成员的语法TimeInForce是:
TimeInForce::Day
Run Code Online (Sandbox Code Playgroud)
句点 ( .) 用于访问类的非静态成员。