Is mixing the old and new C++ function syntax in a class allowed?
<p>This code actually works:</p>

<pre><code>class Abstract {
    virtual auto foo() -&gt; int = 0;
};

class Concrete: public Abstract {
    int foo() { cout &lt;&lt; "blah!" &lt;&lt; endl; return 1; }
} instance;
</code></pre>

<p>I understand that the function gets mangled and linked to be the same function signature, but is this kind of mixing actually legal in C++14?</p>