идёт про вывод типа шаблона, утверждается что, const и volatile отбрасываются
На примере объясняют, что:
template <class T>
void f(T x);
...
int x = 0;
const int cx = 1;
f(cx); // T = int
тут const отбрасывается.
Я попробовал этот пример, и где-то нашёл способ вывода типа, чтоб компилятор отобразил его в ошибке, так и сделал,
но у меня выдаёт
error: aggregate 'TD<const int> cxType' has incomplete type and cannot be defined
template <typename T>
class TD;
int main() {
const int cx = 5;
TD<decltype(cx)> cxType;
}
Почему так получается?
А определение класса есть?
Как бы разные примеры
в чём разница?
В первом вывод типа из аргумента в втором просто указание типа
В примере вывода типа нет
Обсуждают сегодня