是否可以调用专门的整数模板化方法?

时间:2016-02-24 09:10:55

标签: c++ templates specialization

我有一个非模板类,它本身用作另一个类的模板参数。 此类用于抽象某些数据的基础表示。 理想情况下,此类的方法之一应该是整数参数化。

例如:     typedef double Price;

enum Side
{
  BUY,
  SELL
};

struct Book
{
  template <Side side>
  int getLimit(Price price) const
  {
    return 0;
  }
};

struct Spotter
{
  template <typename Book>
  Price compute(Price startPrice, const Book& book)
  {
    int limit = book.getLimit<BUY>(startPrice);
    return 0;
  }
};

现在用gcc编译时,我得到了 &#34;错误:不匹配&#39;运营商&lt;&#39;在book-&gt; Book :: getLimit&lt; (侧)0U&#34;

它看起来像一个解析错误,好像语法不允许首先写入object.method(args)。

请注意,在我的实际代码中,compute()方法本身由side参数参数化,该参数被转发到getLimit()方法。

有没有办法让这项工作?

0 个答案:

没有答案