Тип вашего выражения - double.
Это можно проврить очень простым способом (я так сделал):
создать объявление шаблонного класса без реализации и инстанцировать его выражением. Ошибка компиляции покажет тип:
template <typename T>
class TD;
int main() {
int i = 1;
int j = 1;
TD<decltype (1.0 * i / j)> td;
}
Ошибка:
/home/maxim/Workspace/my/cdm/main.cpp: In function ‘int main()’:
/home/maxim/Workspace/my/cdm/main.cpp:61:32: error: aggregate ‘TD<double> a’ has incomplete type and cannot be defined
TD<decltype (1.0 * i / j)> a;
Как видим, тип вывелся как double