Останутся ли указатели на строковые литералы действительными после возврата функции?

Верен ли указатель, возвращаемый следующей функцией?

const char * bool2str( bool flg )
{
    return flg ? "Yes" : "No";
}

Хорошо работает в Visual C ++ и g ++. Что стандарт C ++ говорит об этом?