, TaskScheduler , , .
, , , , , ( , MSVC , , *). , .
loopkup - , , , . , , . , , . - , - , . . , , ; , , , , .
:
void foo (int);
template <typename T> void bar(T t) {
foo(1.0);
foo(t);
}
void foo (double);
struct qux {};
void foo (qux);
void baz () {
bar (1.0);
qux q;
bar (q);
}
N.B. , . , qux last .
bar foo. , , . foo (int), , . ++. , . baz bar<double>, bar<qux>. bar foo T. double, -, bar foo(int). qux, , , **, foo(qux).
, . , , ; . , .
* MSVC , , . , , .
** In almost every case, an instantiation context includes every declaration that has a definition context. However, the keyword exportcan lead to the fact that this is not so. This keyword is implemented in only one compiler interface - I wonder why no one implemented it? [/Sarcasm]