On Sunday, 21 June 2015 19:19:17 UTC+3, Stefan Ram wrote:
> Öö Tiib <
oot...@hot.ee> writes:
> >I meant in contexts of standard where it for some reason wants to
> >emphasize that it is said about ordinary class not about some class
> >template or class template instantiation or class template specialization.
> >It is defect to call it "non-template class"?
>
> Scott Meyers wrote that he sometimes refers to »classes«
> that are really templates and it is his opinion that such
> »sloppiness« hurts no one as long as one can understand it.
>
> However, in the case of a technical specification (or even a
> beginner's tutorial), a controlled vocabulary might be
> better. For example, I have problems understanding the rules
> for initialization because they depend on which constructors
> are »there« (that is, user-defined, implicit, defaulted,
> deleted, or nonexistend default constructors - these are all
> different cases! And I might still have missed some) and it
> seems to be that they sometimes used different wording for
> the same thing, (possibly »user-defined« = »explicit« or so).
> And this makes it even harder to read.
One reason why the standard is hard to read is that it is meant
as specification for writing C++ compilers and standard libraries.
Specification and user's manual are usually different things.
Other reason is that it is quite rapid voluntary work of many
unrelated people on rather complex subject. The result of such
work usually contains some controversies or inconsistencies.