Ich bin in der Notwendigkeit, Warnungen loszuwerden, einer davon ist ein -Wingling-sonst. Er stellt fest, ein unsicherer, wenn in der folgenden Makrodefinition:dangling wenn und Makro
#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)
Ich muss zugeben, ich weiß nicht wirklich in dieses Makro erhalten und somit nicht wissen, wie diese Warnung zu beheben.
Konnte mir jemand mit einer Erklärung helfen, wie man das Dangling sonst vermeidet?
' #define FOR_EACH_REF (var, container) für (auto & var: container) '? – Jarod42
@ Jarod42 Jepp, das ist der Punkt, keine automatischen Variablen und neue Sachen, brauchen alte Compiler-Unterstützung. –
@OliverFriedrich 'auto' ist so alt wie' declltype' ... – Steve