История изменений
Исправление MOPKOBKA, (текущая версия) :
Как же там функции одного и того же типа один раз возвращают f(x), а другой раз - просто f?
В каком именно примере и в каком месте? Возвращается всегда один тип, и по ассемблерному коду видно что никакого dynamic нету, это видно на строках 19-26 ассемблерного вывода, передается либо один указатель на функцию, либо другой: https://godbolt.org/z/6onMGh39M
Если переписать то что на godbolt я сейчас разместил в псевдо-С++, то пример бы выглядел так:
using fn = fn ();
fn get_fn(int n) {
fn fn_a() {
return fn_a;
}
fn fn_b() {
return fn_b;
}
return n > 0 ? fn_a : fn_b;
}
Исправление MOPKOBKA, :
Как же там функции одного и того же типа один раз возвращают f(x), а другой раз - просто f?
В каком именно примере и в каком месте? Возвращается всегда один тип, и по ассемблерному коду видно что никакого dynamic нету, это видно на строках 19-26 ассемблерного вывода, передается либо один указатель на функцию, либо другой: https://godbolt.org/z/6onMGh39M
Если переписать то что на godbolt я сейчас разместил в псево-С++, то пример бы выглядел так:
using fn = fn ();
fn get_fn(int n) {
fn fn_a() {
return fn_a;
}
fn fn_b() {
return fn_b;
}
return n > 0 ? fn_a : fn_b;
}
Исправление MOPKOBKA, :
Как же там функции одного и того же типа один раз возвращают f(x), а другой раз - просто f?
В каком именно примере и в каком месте? Возвращается всегда один тип, и по ассемблерному коду видно что никакого dynamic нету, это видно на строках 19-26 ассемблерного вывода, передается либо один указатель на функцию, либо другой: https://godbolt.org/z/6onMGh39M
Если переписать то что на godbolt я сейчас разместил в псево-С++, то пример бы выглядел так:
using fn = fn ();
fn get_fn(int n)
{
fn fn_a()
{
return fn_a;
}
fn fn_b()
{
return fn_b;
}
return n > 0 ? fn_a : fn_b;
}
Исходная версия MOPKOBKA, :
Как же там функции одного и того же типа один раз возвращают f(x), а другой раз - просто f?
В каком именно примере и в каком месте? Возвращается всегда один тип, и по ассемблерному коду видно что никакого dynamic нету, это видно на строках 21-26 ассемблерного вывода, передается либо один указатель на функцию, либо другой: https://godbolt.org/z/6onMGh39M