这跟泛型无关, 是降转的问题以 T.X 是 int, K 是 float 来说的话a.X * b 是一个 int 乘 float, 照规则会得到 float然后你要把一个 float 塞进 c.X 这个 int 里就喷 C4244 了这里跟泛型沾到边的地方只有因为泛型你不知道 T.X 的型态那么用 decltype 是对的, 但你忘了括号decltype 要带一对 () 里面放式子才是对的语法:
https://en.cppreference.com/w/cpp/language/decltype