AUTOSAR C++14 Rule A8-2-1

При объявлении шаблонов функций возвращается запаздывание, синтаксис типа должен использоваться, если тип возврата будет зависеть от типа параметров.

Описание

Управляйте определением

При объявлении шаблонов функций возвращается запаздывание, синтаксис типа должен использоваться, если тип возврата будет зависеть от типа параметров.

Объяснение

Когда тип возврата шаблона зависит от типов параметров, использование запаздывания возвращается, синтаксис типа улучшает удобочитаемость кода значительно по сравнению с альтернативами.

Например, для определений из класса методов, с помощью запаздывания возвращаются, синтаксис типа избавляет вас от необходимости использовать полностью определенный тип возврата функции наряду с typename ключевое слово. Например, вместо того, чтобы явным образом задать полностью определенный возврат вводят для aMethod в этом примере:

template <typename T>
class aClass {
    public:
      using vectorType = std::vector<T>;
      vectorType aMethod(T const&);
};

//Difficult-to-read method definition
//Part in bold indicates fully qualified return type of method
template <typename T>
typename aClass<T>::vectorType aClass<T>::aMethod(T const &) {
};
Можно использовать запаздывание, возвращают синтаксис типа можно следующим образом:
template <typename T>
class aClass {
    public:
      using vectorType = std::vector<T>;
      vectorType aMethod(T const&);
};
template <typename T>
auto aClass<T>::aMethod(T const &) -> vectorType {
};

Реализация Polyspace

Средство проверки отмечает объявления шаблона функции, куда явным образом заданный возвращаются, тип функции шаблона имеет тот же осциллограф как сама функция шаблона.

Например, в предыдущем примере, функциональном aMethod имеет тип возврата vectorType, который имеет тот же осциллограф как aMethod, а именно, класс aClass<T>. Вместо того, чтобы явным образом задать полностью определенный тип возврата, можно использовать запаздывание, возвращают синтаксис типа.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: операторы объявления

Введенный в R2020a