В C++, пусть следующей конструкции:Как оценивается это булево выражение?
template<typename ValueType>
ValueType * func(Foo * foo)
{
Bar bar;
return foo && typeid(foo) == typeid(ValueType) ? &static_cast<ValueType*>bar : 0;
}
Как вычисляется оператор возврата? Вот так?
if ((bar && typeid(bar)) == typeid(ValueType))
return &static_cast<ValueType*>bar
return false;
Вы не можете вернуть указатель на панель. Это выходит за рамки. Хотя на самом деле я не уверен, что вы делаете. –
static_cast требует скобок. –
Yup, это фиктивный пример, бар не будет объявлен в рейтинге func. Мне просто сложно оценить оператор return с точки зрения приоритета (&&, == или? ..). – user3020233