1
我遇到了使用類型別名和嵌套類/作用域的奇怪問題。下面的代碼是通過愉快3.3鐺接受,但拒絕nuwen MinGW的4.8.1:使用類型別名與嵌套類
template<typename T>
struct container
{
};
struct Outer
{
using type_t = int;
struct Inner
{
using container_t = container<type_t>;
using type_t = Outer::type_t; //error in MinGW
};
};
所產生的用gcc錯誤:http://ideone.com/cba6Fp(在我的系統相匹配的錯誤)
要修復該錯誤MinGW,你只需將container_t
的定義移動到type_t
(這是有道理的,而且本來應該是我原來所做的) - 但是我的問題是爲什麼它會用clang而不是MinGW編譯?代碼是否有效?
我不知道有些違規行爲不需要診斷 - 還有多少其他「隱藏的錯誤」是這樣的? –
@ LB--標準草案中有23個「需要診斷」的字樣。 – TemplateRex