[問題] BCB6: '> >' for nested templates

看板C_and_CPP (C/C++)作者 (800IM)時間12年前 (2013/09/19 10:26), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串1/2 (看更多)
#include <vector> using namespace std; . . . vector<vector<int>> vPixel(jpImg->Width,vector<int>(jpImg->Width)); 會錯, [C++ Warning] Unit1.cpp(46): W8049 Use '> >' for nested templates instead of '>>' [C++ Error] Unit1.cpp(46): E2268 Call to undefined function 'vPixel' vector<vector<int> > vPixel(jpImg->Width,vector<int>(jpImg->Width)); ^^ 若加一格空白,編譯就過了! 超怪的! 這是IDE的bug嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.165.23

09/19 10:34, , 1F
不是 bug,你換 gcc 也一樣,編譯器解讀程式碼時,會盡量
09/19 10:34, 1F

09/19 10:35, , 2F
往長度長的方向解讀...總之就是會被誤判成 >> 運算子
09/19 10:35, 2F

09/19 10:44, , 3F
我也疑惑多個驗證>>會影響編譯速度很多嗎?
09/19 10:44, 3F

09/19 10:45, , 4F
會吧XD C++新版標準中有改語法, 可正確parse >>
09/19 10:45, 4F

09/19 10:45, , 5F
只要支援C++11就可以了
09/19 10:45, 5F

09/19 10:46, , 6F
^^^^^^這個會吧不是說影響編譯速度那句orz
09/19 10:46, 6F

09/19 11:17, , 7F
嗯. 不過遇到複雜一點的, C++11 也不行. 也有相容問題
09/19 11:17, 7F

09/19 12:24, , 8F
用 typedef 你就不會遇到這問題
09/19 12:24, 8F

09/19 12:36, , 9F
或者是一個模板引數隔一行寫
09/19 12:36, 9F

09/19 13:49, , 10F
在C++11之前本來就是這樣規定要空一格
09/19 13:49, 10F
文章代碼(AID): #1IEc2u63 (C_and_CPP)
文章代碼(AID): #1IEc2u63 (C_and_CPP)