Здравствуйте, rg45, Вы писали:
R>Здравствуйте, so5team, Вы писали:
S>>Грубо говоря, было:
S>>S>>template<typename T>
S>>int f() {
S>> try {
S>> return T::some_func();
S>> }
S>> catch(...) {
S>> // Ну не шмогли, ну и ладно.
S>> return 0;
S>> }
S>>}
S>>
S>>Теперь такая возможность появляется (т.е. функцию f из примера выше можно объявить constexpr) но не хочется "проглатывать" исключения, если они происходят в compile-time.
R>Да, только в этом сценарии отсутсвует долгожданное "try-catch в constexpr функции"
Почему отсутствует? Была просто f() показанная выше, стала:
template<typename T>
constexpr int f() {
try {
return T::some_func();
}
catch(...) {
// Ну не шмогли, ну и ладно.
return 0;
}
}