Здравствуйте, B0FEE664, Вы писали:
BFE>Не вижу препятствий:
BFE>BFE> using pT = decltype(y)(*)(decltype(y));
BFE> x = (flag ? (pT)std::sin : (pT)std::cos)(y);
BFE> using pF = const decltype(y)& (*)(const decltype(y)&,const decltype(y)&);
BFE> y = (flag ? (pF)std::min : (pF)std::max)(x, y);
BFE>
BFE>хотя, конечно, столбовая дорога идёт в другом направлении...
Ну да, с шаблонами/перегрузками и явным преобразованием можно, конечно — по типу, как преобразуется к указателю на функцию шаблон std::endl. Но сейчас уже всё чаще в тренде функциональные объекты типа std::views::take, std::views::drop и множество других. Это все имена объектов, причём разных классов и тут уже даже явное преобразование к указателю/ссылке на функцию не проканает.