Is there any diference between defining static function inside anonymous namespace and outside?
<p>In C++, I know that if I declare a function with static, it names will only exist to the compilation unit where it is declared / defined:</p>

<pre><code>static void MyFunction() {...}
</code></pre>

<p>Also, if I declare my function inside an anonymous namespace, its name will only exist in the local compilation unit:</p>

<pre><code>namespace
{
    void MyFunction() {...}
}
</code></pre>

<p>Also, I can use static inside the anonymous namespace:</p>

<pre><code>namespace
{
    static void MyFunction() {...}
}
</code></pre>

<p>Is there any difference between those definitions?</p>

<p>Thank you</p>
