<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Hi Warren,</div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">On Mon, 2 May 2022, 03:29 Warren Weckesser via Boost-users, &lt;<a href="mailto:boost-users@lists.boost.org" target="_blank" rel="noreferrer">boost-users@lists.boost.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>In a program like this:<br>
<br>
```<br>
#include &lt;boost/math/distributions/beta.hpp&gt;<br>
<br>
using boost::math::beta_distribution;<br>
<br>
int main()<br>
{<br>
    float a = 1.5f;<br>
    float b = 3.0f;<br>
    beta_distribution&lt;float&gt; dist(a, b);<br>
<br>
    auto m = mean(dist);<br>
}<br>
```<br>
<br>
how does the name &#39;mean&#39; end up in scope in &#39;main()&#39;?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">this is indeed a C++ question: what you are observing is called &quot;argument dependent lookup&quot;.</div><div dir="auto"><br></div><div dir="auto">Since `dist` is of a type defined in the `boost::math::beta_distribution`, the compiler will look up `mean` in the same namespace, and finds a definition there.</div><div dir="auto"><br></div><div dir="auto">If you try using `mean` with a different argument the full namespace should be needed:</div><div dir="auto">```</div><div dir="auto"><div dir="auto">std::vector&lt;double&gt; v{1,2,3,4,5};</div><div dir="auto">double mu = boost::math::statistics::mean(v);</div></div><div dir="auto">```</div><div dir="auto"><br></div><div dir="auto">For more information you can check <a href="https://en.cppreference.com/w/cpp/language/adl">https://en.cppreference.com/w/cpp/language/adl</a> .</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Hope this helps,</div><div dir="auto">.Andrea</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>

