2017-09-13 163 views
-6

遇到錯誤試圖讓下面的代碼工作返回模板類型

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

的點< VAR>在我的結構矩形的回報似乎是造成很多難以理解的錯誤。有人會碰巧知道這樣做的正確方法嗎?

+1

哪些錯誤?它有助於將它們包含在問題中。 – chris

+0

令人驚訝的是,您不會將整個錯誤粘貼到您的問題中,這是一種標準做法,考慮您在此處的體驗 –

+0

@chris我沒有包含錯誤,因爲它似乎對問題沒有什麼價值。 MSVC吐出的確切錯誤是任何包含上述文件的文件都有語法錯誤,而不會顯示與上述文件相關的錯誤。 我覺得添加錯誤只會使問題混亂,並增加混淆,人們會問我包括MSVC正在討論的其他文件,而我可以清楚地看到其他文件沒有任何問題。如果人們願意,我不管添加錯誤,請讓我知道。 – dk123

回答

4

有後無分號:

return Point <var> (x,y) 
+0

謝謝你的回答。雖然在看到這個答案後,我馬上去了'阿',並意識到我犯了一個錯誤是多麼的粗心大意,如果回答者沒有發佈這個消息,我可能會花上幾個小時。謝謝! – dk123

+0

但是,經過4年多的StackOverflow後,我發現看到有多少人現在更喜歡根據一般規則和預先形成的觀點投票回答問題,而不想幫助面臨困難的人。再次感謝您成爲少數仍然優先考慮幫助的例子 - 這真的有所幫助。 – dk123

+0

@ dk123感謝您的評論,我不太瞭解一般規則,因爲從我開始堆棧溢出已經有一段時間了,但我也認爲可以讓他們認爲你的問題不是好問題。所以我希望你不要介意他們 –