From 66c87cdfb81e45e938b5a33d1526ee96347a0338 Mon Sep 17 00:00:00 2001 From: Manfredss Date: Mon, 3 Nov 2025 17:08:18 +0800 Subject: [PATCH 1/2] fix error C2440 when running ninja on windows --- .../phi/core/framework/data_type_transform.cc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/paddle/phi/core/framework/data_type_transform.cc b/paddle/phi/core/framework/data_type_transform.cc index 6ed397d85d378e..ba8490d40b373c 100644 --- a/paddle/phi/core/framework/data_type_transform.cc +++ b/paddle/phi/core/framework/data_type_transform.cc @@ -30,8 +30,22 @@ namespace phi { template struct CastDataTypeFunctor { HOSTDEVICE inline OutType operator()(InType in) const { - return static_cast(in); - } + #if defined(_MSC_VER) + // Avoid unsupported convert of float/bfloat8/float16 -> complex for MSVC + if constexpr ( + (std::is_same_v> || + std::is_same_v>) && + (std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v)) { + return OutType(0); // default return value,only to avoid compile error + } else + #endif + { + return static_cast(in); + } + } }; #if defined(PADDLE_WITH_XPU) From 54cbe21ea22c85175bb7f2816a2918112a0bdc45 Mon Sep 17 00:00:00 2001 From: Manfredss Date: Wed, 5 Nov 2025 07:06:07 +0800 Subject: [PATCH 2/2] fix pre-commit codestyle issues --- .../phi/core/framework/data_type_transform.cc | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/paddle/phi/core/framework/data_type_transform.cc b/paddle/phi/core/framework/data_type_transform.cc index ba8490d40b373c..8ec86fa02e4e45 100644 --- a/paddle/phi/core/framework/data_type_transform.cc +++ b/paddle/phi/core/framework/data_type_transform.cc @@ -30,22 +30,27 @@ namespace phi { template struct CastDataTypeFunctor { HOSTDEVICE inline OutType operator()(InType in) const { - #if defined(_MSC_VER) - // Avoid unsupported convert of float/bfloat8/float16 -> complex for MSVC - if constexpr ( - (std::is_same_v> || - std::is_same_v>) && - (std::is_same_v || - std::is_same_v || - std::is_same_v || - std::is_same_v)) { - return OutType(0); // default return value,only to avoid compile error - } else - #endif - { - return static_cast(in); - } - } +#if defined(_MSC_VER) + // Avoid unsupported convert of float/bfloat8/float16 -> complex + if constexpr ( + (std::is_same_v> || + std::is_same_v< + OutType, + phi::dtype::complex< + double>>)&&(std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v)) { + // default value,only to avoid compile error + return OutType(0); + } else { + return static_cast(in); + } +#else + return static_cast(in); +#endif + } }; #if defined(PADDLE_WITH_XPU)