Talk:cpp/types/is constructible
From cppreference.com
The page states that:
Only the validity of the immediate context of the variable definition is considered.
This statement is somewhat unclear, what context does "the immediate context" refer to? The context where std::is_constructible is used, or the context within the instantiation of std::is_constructible? See (old) discussion in [1] on Stackoverflow. (My two cents are that it shouldn't be the context where it is used, since that would require different instantiation with the same template parameters in different contexts.)
A comment from that link also mentions that in the standard
§20.10.4.3/7 says that is_constructible only reflects the public interface
So even if the "immediate context" has access to non-public constructors of a class, std::is_constructible should return false for such constructors, which the statement here does not imply.
211.83.100.166 23:03, 30 October 2018 (PDT)
- the "immediate context" sentence is just a direct quote from the standard, specifically meta.unary#prop-8.sentence-4, but the standard goes on to explain what it means in detail, see the Note in meta.unary#prop-8. As for private access and friend functions, that's an unrelated, rule, though it appears in the same subclause. Namely, meta.unary#prop-8.sentence-3 --Cubbi (talk) 04:03, 31 October 2018 (PDT)