Я знаю, что она может быть запутанной, но, кроме того, может быть выведен noexcept из вызовой функции, когда это возможно?
Код: Выделить всё
void f(){}
void f() noexcept{} // not allowed in c++
void g(){f();} // should call f
void h() noexcept{f();} // should call f noexcept
int main(){
g();
h();
}
< /code>
Если вызовая функция (h, используется ли этот шаблон в какой -то другой обходной форме?
Код: Выделить всё
template void F() noexcept(NE);
template
void F() noexcept(true){}
template
void F() noexcept(false){}
void g(){F();} // calls F
void h() noexcept{F();} // call F
< /code>
Некоторые могут задаться вопросом, почему это имеет смысл.
Моя логика заключается в том, что C ++ позволяет перегружать по отношению к const < /code>, как аргумент функций, так и функция -член. Функции, чтобы вызвать noexcept Подробнее здесь: https://stackoverflow.com/questions/483 ... o-noexcept
Мобильная версия