c++ - Name resolution and Point of instantiation in Templates -
this statement iso c++ standard 14.6.4.1 point of instantiation
4.if virtual function implicitly instantiated, point of instantiation following point of instantiation of enclosing class template specialization. 5.an explicit instantiation directive instantiation point specialization or specializations specified explicit instantiation directive. 6.the instantiation context of expression depends on template arguments set of declarations external linkage declared prior point of instantiation of template specialization in same translation unit.
i unable write programs whole section. trying write programs section yesterday.
please, try ask 1 or more points. in section. here unable understand single point in section.
so, kindly can 1 provide me code sections understand.
the first 2 statements explain instantiation point of template constructs are; doesn't introduce new template constructs. can reuse previous examples.
the third statement (14.6.4.1/6) tells point of instantiation points is: point names looked during second phase of name lookup. names declared before instantiation point visible; declared afterwards not. (in first phase of two-phase name lookup, non-dependent names looked in set of declarations precede template definition).
so, given:
template <typename t> void foo() { t() + t(); }
the instantiation contexts of expression t()+t()
set of declarations precede respective instantiation points of foo<t>
. name operator+
looked in contexts, , includes declarations follow definition precede instantiation point.
Comments
Post a Comment