Информация об изменениях

Сообщение Re[4]: перегрузки с приоритетами от 30.06.2023 17:53

Изменено 30.06.2023 17:59 kov_serg

Re[4]: перегрузки с приоритетами
Здравствуйте, Кодт, Вы писали:

_>>А что мешает вместо dispatch делать return_function, а у неё брать сигнатуру ?

К>То, что семейство функций — не первоклассный объект. Как ты из hf вернёшь f?
А что мешает вместо int возвращать функцию или её номер.
Re[4]: перегрузки с приоритетами
Здравствуйте, Кодт, Вы писали:

_>>А что мешает вместо dispatch делать return_function, а у неё брать сигнатуру ?

К>То, что семейство функций — не первоклассный объект. Как ты из hf вернёшь f?
А что мешает вместо line возвращать функцию или её номер.

enum {
    fun0_auto,
    fun5_int,
    fun5_const_char_ptr,
    fun10_ref_int,
    fun10,
    fun20_short,
    fun20_short_ref,
    fun20_long_ref,
    fun30_int_int
};

int fun(prio<0>, auto&&...) { return fun0_auto; }

int fun(prio<5>, int) { return fun5_int; }
int fun(prio<5>, const char*) { return fun5_const_char_ptr; }

int fun(prio<10>, int&) { return fun10_ref_int; }
int fun(prio<10>) { return fun10; }  // перегрузка с другим количеством аргументов

//int fun(prio<20>, short) { return fun20_short; }
int fun(prio<20>, short&) { return fun20_short_ref; }
int fun(prio<20>, long&) { return fun20_long_ref; }

int fun(prio<30>, int, int) { return fun30_int_int; }