Is this using alias for a function type (not pointer) the same as this typedef
<p>Are these the same?</p>

<pre><code>using on_receipt = void (const string);

typedef void on_receipt(const string);
</code></pre>

<p>These are not aliasing a function pointer, but rather an actual function type. They both compile fine. What seems odd is that the <code>typedef</code> version at least has the placeholder for the name of the function, but since the <code>using</code> moves this placeholder before the <code>=</code>, there is nothing separating the return and the parameters, which looks like it could be incorrect or misleading.</p>