diferencias en el comportamiento entre char, char firmado y char sin firmar
El siguiente código se compila correctamente, pero char se comporta de manera diferente que los tipos enteros.
cout ::ikIsX >() ::ikIsX >() ::ikIsX >()El resultado son tres patrones de creación de instancias para tres tipos: int8, uint8 y char. ¿Por qué sucede esto?
No ocurre lo mismo con los números enteros: int y uint32 dan como resultado una instanciación de patrón, y int con signo da como resultado otra.
La razón probablemente sea porque C trata char , char firmado y char sin firmar como tres tipos diferentes. Mientras que int es lo mismo que int con signo. ¿Es esto cierto o me falta algo?
#include
using namespace std; typedef signed char int8; typedef unsigned char uint8; typedef signed short int16; typedef unsigned short uint16; typedef signed int int32; typedef unsigned int uint32; typedef signed long long int64; typedef unsigned long long uint64; struct TrueType {}; struct FalseType {}; template struct isX { typedef typename T::ikIsX ikIsX; }; // Это int==int32 неоднозначно //template bool getIsTrue(); template ::ikIsX >() ::ikIsX >() ::ikIsX >() ::ikIsX >() ::ikIsX >() ::ikIsX >() Yo uso g 4.algo
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3