Сообщение Re[4]: примеры noexcept(expr) от 30.03.2017 9:36
Изменено 30.03.2017 9:39 Alexander G
Re[4]: примеры noexcept(expr)
Здравствуйте, N. I., Вы писали:
NI>Необходимости использовать declval там нет, т.к. в noexcept-specification можно использовать имена параметров функции (так же, как и в trailing-return-type)
Всё равно не хочу такую колбасу писать, хочу так
NI>Необходимости использовать declval там нет, т.к. в noexcept-specification можно использовать имена параметров функции (так же, как и в trailing-return-type)
template <typename T>
void foo(const T& a1, const T& a2)
noexcept(noexcept(a1 == a2 || a1 > a2))
{
// ...
if (a1 == a2 || a1 > a2)
// ...
Всё равно не хочу такую колбасу писать, хочу так
template <typename T>
void foo(const T& a1, const T& a2) noexcept(auto)
{
// ...
if (a1 == a2 || a1 > a2)
// ...
}
Re[4]: примеры noexcept(expr)
Здравствуйте, N. I., Вы писали:
NI>Необходимости использовать declval там нет, т.к. в noexcept-specification можно использовать имена параметров функции (так же, как и в trailing-return-type)
Всё равно не хочу такую колбасу писать, хочу так
NI>Необходимости использовать declval там нет, т.к. в noexcept-specification можно использовать имена параметров функции (так же, как и в trailing-return-type)
template <typename T>
void foo(const T& a1, const T& a2)
noexcept(noexcept(a1 == a2 || a1 > a2))
{
// ...
if (a1 == a2 || a1 > a2)
// ...
Всё равно не хочу такую колбасу писать, хочу так
template <typename T>
void foo(const T& a1, const T& a2) noexcept(auto)
{
// ...
if (a1 == a2 || a1 > a2)
// ...
[[noexcept]]
{
// а здесь мы что-то вызвали, что не бросает, но компилятор не знает об этом
}
}