Являются ли они такими же?Является ли это псевдонимом для типа функции (не указателем) так же, как этот typedef
using on_receipt = void (const string);
typedef void on_receipt(const string);
Это не наложение указателя на функцию, а фактический тип функции. Они оба скомпилированы. Что странно, так это то, что версия typedef
хотя бы имеет место для имени функции, но поскольку using
перемещает этот заполнитель до =
, нет ничего, отделяющего возврат и параметры, которые выглядят так, будто это может быть неправильным или вводящим в заблуждение ,
Возможно лучшая идея для жесткого очевидности =). Престижность. +1 – luk32
Простейший тест, не требующий '' is 'using on_receipt = void (const std :: string); typedef void on_receipt (const std :: string); '. Вы можете повторно использовать typedefs, но только если оба объявления называют один и тот же тип. –