On Mon, Feb 12, 2024 at 2:15 PM Baruch Burstein via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
Hi,
I would like to suggest an addition to the core language. The idea is to allow using `using` to create function aliases, similar to type aliases. e.g.

    template <class T>
    int foo() { ... }

    using foo_int = foo<int>;

My questions are as follows:
1. Has this been suggested/discussed before and already decided to not do it? If so, please point me to the reasoning.
2. Does anyone see an obvious reason this would not work / be a bad idea, and so no point in pursuing it?
3. Assuming none of the above, what would be the procedure to suggest this? What are my chances of actually getting something into the core language?

Thank you

This was previously proposed by https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0945r0.html.

It was rejected in part due to the desire for wanting different kinds of alias (alias type vs alias function etc) to actually look different in code, so would either have to come up with whatever that syntax should look like or an argument for why you don't need that syntax. Although now that "down with typename" has been in the standard for a while, it'd be a breaking change to use the same syntax - since now you'd need "typename" again in all of these places. 

Barry