从模板类返回模板类型

时间:2017-09-13 03:34:49

标签: c++ templates

我在尝试使用以下代码时遇到错误

template<typename var>
struct Point
{
    var x;
    var y;

    constexpr Point() : x( 0 ), y( 0 ) {
    }
    constexpr Point( const var _x, const var _y ) : x( _x ), y( _y ) {
    }
    var GetX() const { return x; }
    var GetY() const { return y; }
};

template<typename var>
struct Rect
{
    var x, y;
    var w, h;

    constexpr Rect() : x( 0 ), y( 0 ), w( 0 ), h( 0 ) {
    }
    constexpr Rect( const var _x, const var _y, const var _w, const var _h ) : x(_x), y(_y), w(_w), h(_h) {
    }

    var Left() const { return x; }
    var Right() const { return x + w; }
    var Top() const { return y; }
    var Bottom() const { return y + h; }
    Point<var> LT() const { return Point<var>( x, y ) };
    Point<var> RT() const { return Point<var>( x + w, y ) };
    Point<var> LB() const { return Point<var>( x, y + h ) };
    Point<var> RB() const { return Point<var>( x + w, y + h ) };
};

The Point&lt; var&gt;在我的struct Rect中返回似乎导致很多难以理解的错误。有人会碰巧知道这样做的正确方法吗?

1 个答案:

答案 0 :(得分:4)

之后没有分号:

return Point <var> (x,y)