**File:** modules/core/include/opencv2/core/cvdef.h
**Change Type:** modified
**Context:** PR #25217: core: Rename `cv::float16_t` to `cv::hfloat`
**Review Line:** 903

**Code Changes:**
```diff
+    hfloat res(out.f);
+    return res;
+#endif
+}
+
+typedef hfloat float16_t;
+
 }
 #endif
 
```

Review comment:
That should be available for **EXTERNAL** users only. We should not use that in OpenCV code anywhere else. Because these hits still lead to conflicts with future C++ compilers: ``` $ grep -Rn float16_t ./ ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:497: typedef __fp16 float16_t; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:498: const float16_t* a = (const float16_t*)_a; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:499: const float16_t* b = (const float16_t*)_b; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:500: float16_t* c = (float16_t*)_c; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:641: typedef __fp16 float16_t; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:643: const float16_t* a = (const float16_t*)_a; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:644: const float16_t* b = (const float16_t*)_b; ./modules/dnn/src/layers/cpu_kernels/conv_block.simd.hpp:646: const float16_t bias = (float16_t)_bias; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.cpp:88: esz = sizeof(float16_t); ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:438: typedef __fp16 float16_t; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:439: const float16_t* inwptr = (const float16_t*)_inwptr; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:440: const float16_t* wptr = (const float16_t*)_wptr; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:441: float16_t* outbuf = (float16_t*)_outbuf; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:594: typedef __fp16 float16_t; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:595: float16_t* outptr = (float16_t*)_outptr; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:760: typedef __fp16 float16_t; ./modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:761: const float16_t* inptr = (const float16_t*)_inptr; ./modules/dnn/src/layers/cpu_kernels/convolution.hpp:65: std::vector<float16_t> weightsBuf_FP16; ./modules/dnn/src/layers/cpu_kernels/convolution.hpp:66: std::vector<float16_t> weightsWinoBuf_FP16; ./modules/dnn/src/layers/cpu_kernels/convolution.hpp:67: float16_t* getWeightsFP16(); ./modules/dnn/src/layers/cpu_kernels/convolution.hpp:68: float16_t* getWeightsWinoFP16(); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:29:static inline void _cvt32f16f(const float* src, float16_t* dst, int len) ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:63: dst[j] = float16_t(src[j]); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:77:float16_t* FastConv::getWeightsFP16() ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:82:float16_t* FastConv::getWeightsWinoFP16() ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:274: float16_t* wptrWino_FP16 = nullptr; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:330: float16_t* wptr = wptrWino_FP16 + (g*Kg_nblocks + ki) * Cg *CONV_WINO_KBLOCK*CONV_WINO_AREA + ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:338: wptr[j] = (float16_t)kernelTm[i * CONV_WINO_ATOM_F16 + j]; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:374: float16_t* weightsPtr_FP16 = nullptr; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:403: float16_t* packed_wptr = weightsPtr_FP16 + DkHkWkCg * (startK + g * Kg_aligned_FP16); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:414: packed_wptr[k] = (float16_t)(*wptr); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:416: packed_wptr[k] = (float16_t)0.f; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:476: float16_t* inpbufC_FP16 = (float16_t *)inpbufC; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:477: if (esz == sizeof(float16_t)) ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:574: float16_t* inpbufC_FP16 = (float16_t *)inpbufC; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:575: if (esz == sizeof(float16_t)) ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:582: inpbufC_FP16[k*CONV_NR_FP16] = (float16_t)v0; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:583: inpbufC_FP16[k*CONV_NR_FP16+1] = (float16_t)v1; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:639: _cvt32f16f(inptr, (float16_t *)inpbuf, CONV_NR); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:653: _cvt32f16f(inptr, (float16_t *)inpbuf, slice_len); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:715: float16_t* inpbufC = (float16_t *)inpbuf + s0; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:719: inpbufC[w*CONV_NR] = (float16_t)inptrInC[imgofs]; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:776: float16_t* inpbufC = (float16_t *)inpbuf + s0; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:783: inpbufC[(h*Wk + w)*CONV_NR] = (float16_t)inptrInC[imgofs]; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:849: float16_t* inpbufC = (float16_t* )inpbuf + s0; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:858: inpbufC[((d*Hk + h)*Wk + w)*CONV_NR] = (float16_t)inptrInC[imgofs]; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:900: float16_t * inpbuf_ki_FP16 = (float16_t *)inpbuf + k * CONV_NR * Cg + i; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:1064: inpbuf_ki_FP16[0] = (float16_t)(*inptr_ki); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:1080: inpbuf_ki_FP16[0] = (float16_t)0.f; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:1268: esz = sizeof(float16_t); ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:1522: float16_t* cptr_f16 = (float16_t*)cbuf_task + stripe*CONV_NR; ./modules/dnn/src/layers/cpu_kernels/convolution.cpp:1558: const float16_t *cptr_fp16 = (const float16_t *)cbuf_task; ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1637: AutoBuffer<float16_t, 16> aligned_val; ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1640: float16_t* bufPtr = aligned_val.data(); ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1642: float16_t *fp16Ptr = (float16_t *)field.data(); ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1654: AutoBuffer<float16_t, 16> aligned_val; ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1655: if (!isAligned<sizeof(float16_t)>(val)) ./modules/dnn/src/onnx/onnx_graph_simplifier.cpp:1658: aligned_val.allocate(divUp(sz, sizeof(float16_t))); ```