作者deo2000 (800IM)
看板C_and_CPP
標題[問題] BCB6 宣告2D vector的怪問題
時間Thu Sep 19 10:25:57 2013
#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
推 purpose:不是 bug,你換 gcc 也一樣,編譯器解讀程式碼時,會盡量 09/19 10:34
→ purpose:往長度長的方向解讀...總之就是會被誤判成 >> 運算子 09/19 10:35
→ leiyan:我也疑惑多個驗證>>會影響編譯速度很多嗎? 09/19 10:44
推 suhorng:會吧XD C++新版標準中有改語法, 可正確parse >> 09/19 10:45
→ suhorng:只要支援C++11就可以了 09/19 10:45
→ suhorng:^^^^^^這個會吧不是說影響編譯速度那句orz 09/19 10:46
→ Feis:嗯. 不過遇到複雜一點的, C++11 也不行. 也有相容問題 09/19 11:17
→ loveme00835:用 typedef 你就不會遇到這問題 09/19 12:24
→ loveme00835:或者是一個模板引數隔一行寫 09/19 12:36
推 kwpn:在C++11之前本來就是這樣規定要空一格 09/19 13:49