Можно ли принудительно перевести возвращаемый тип на новую строку с помощью clang-format?

Я ищу способ заставить конечные возвращаемые типы всегда помещаться в новую строку. Я заметил, что формат clang будет делать это с длинными объявлениями, но не будет, если он достаточно короткий. Есть ли способ изменить это?

Ex.

auto foo() -> std::optional<std::string>
{ 
   // ...
}

становится

auto foo()
   -> std::optional<std::string>
{
   // ...
}

person Cameron Rowe    schedule 01.03.2020    source источник


Ответы (1)


Насколько мне известно, нет (вероятно, потому что это относительно новая функция)

Обходной путь - поместить туда комментарий:

    auto foo() //
        -> std::optional<std::string>
    { 
       // ...
    }

Но поскольку это не реализовано как стандарт, вероятно, это означает, что это очень необычная нотация, поэтому, возможно, лучше придерживаться значения по умолчанию.

person benroberts999    schedule 01.03.2020