私は警告を取り除く必要があります。その1つは-Wdangling-elseです。ifとマクロがぶら下がっています
#define FOR_EACH_REF(var, container) \
if(bool _cont = true) \
for(our::remove_reference<decltype(container)>::type::iterator _it = (container).begin(); _it != (container).end() && _cont; ++_it) \
if((_cont = false)) {} else \
for(our::remove_reference<decltype(container)>::type::value_type& var = *_it; !_cont; _cont = true)
私は認めなければならない、私は本当にこのマクロに得ることはありませんので、この警告を解決する方法を、知らない:それは、次のマクロ定義内の場合はダングリングノート。
誰かが抱擁を回避する方法について私に助けてくれますか?
' #define FOR_EACH_REF(var、container)for(auto&var:container) '? – Jarod42
@ Jarod42 jepp、それはポイントです、自動変数と新しいものは、古いコンパイラのサポートが必要です。 –
@OliverFriedrich 'auto'は' decltype'と同じくらい古いです... – Steve