我已經將工作環境從Ubuntu 12.04升級到14.04。 這導致我的編譯器clang
從3.0-6ubuntu3
升級到3.4-1ubuntu3
。C++:錯誤:基類有一個靈活的陣列成員
當我編譯我的代碼現在我得到一個錯誤,我沒有用得到:
error: base class has a flexible array member
我跟着代碼,我發現我使用inotify.h
:
#include <sys/inotify.h>
在這個文件中就在於這個結構:
struct inotify_event {
int wd; /* watch descriptor */
uint32_t mask; /* watch mask */
uint32_t cookie; /* cookie to synchronize two events */
uint32_t len; /* length (including nulls) of name */
char name __flexarr; /* stub for possible name */
};
接下來,我看了一下__flexarr
here但我沒有設法弄清楚什麼地方出了問題,或者我該如何解決它。 任何幫助將不勝感激。
更新:作爲BobTFish答案的後續,這裏是在我的代碼中使用inotify_event。
我有一個名爲inotify_condition_c
的類,它有一個inotify_event
類型的成員,我們稱之爲m_notify_event
。
我有幾個類從inotify_condition_c
繼承。 編譯錯誤clang返回指向那些派生類。
這不是一個新的鱈魚,它在我們的回購很長一段時間。我仍然不明白爲什麼從ubuntu 12.04升級到14.04(還有新版本的clang)顯示錯誤。
謝謝。查看我的更新。 –
@AndyThomas我加了一些想法。儘管沒有明確的解決方案,這取決於你,因爲只有你真的瞭解你的代碼庫。 – BoBTFish