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

Сообщение Re[18]: C++ illegal instruction от 20.08.2025 19:49

Изменено 20.08.2025 19:56 rg45

Re[18]: C++ illegal instruction
Здравствуйте, 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::views::take, std::views::drop и множество других. Это все имена объектов, причём разных классов и тут уже даже явное преобразование к указателю/ссылке на функцию не проканает.
Re[18]: C++ illegal instruction
Здравствуйте, 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 и множество других. Это все имена объектов, причём разных классов и тут уже даже явное преобразование к указателю/ссылке на функцию не проканает.