Xcode 9 commit: не удалось связаться с вспомогательным приложением

void method1() noexcept(noexcept(strProcessor(""))) {
//   Second 'noexcept'  ^^^^^^^^^                ^

Первый - это спецификатор noexcept , который указывает, является ли method1() noexcept .

Вложенные один является noexcept оператором , который проверяет, является ли strProcessor() noexcept при вызове с "".

Второй случай немного tricky: Type все еще не завершен в точке, в которой мы хотели бы использовать method1() внутри noexcept. Я пришел к следующему обходному пути, злоупотребляя указателем-членом:

void method2() noexcept(noexcept(
    (std::declval().*&Type::method1)()
)) {};

Однако я не думаю, что есть случай, когда вы могли бы только вывести method2() noexcept из спецификации method1().

30
задан Pat_Morita 6 October 2017 в 14:29
поделиться