Sto provando a definire il mio tipo di dati (chiamato sfloat
) simile a un float, ma utilizza un numero diverso di bit mantissa e bit esponenziali per adattarsi meglio alla mia gamma di dati e alla precisione. L'obiettivo è definire un nuovo tipo di dati che possa sostituire il float in applicazioni già esistenti. Tutto sta funzionando finora, tranne che sono stato in grado di ignorare o definire l'operatore unsigned
tale cheIndicatore 'unsigned` overloader per classi
unsigned sfloat(3.141527)
sarebbero ritornati la versione senza segno di questa classe, usfloat(3.141527)
.
Sembra che il unsigned
specificatore forza essere in grado di essere sovraccaricato dal VS IntelliSense non si lamenta nel file di intestazione:
sfloat::sfloat(float f) { m_data = get16bit(f); }
operator unsigned() { /*Do stuff here */ };
Ma non funziona in dichiarazione e l'inizializzazione:
unsigned sfloat myPi= 3.141527; // Error: expected a ';'
Non so nemmeno se è possibile farlo in C++ e sono curioso di sapere se qualcuno lo ha già fatto prima?
'unsigned' non è un qualificatore come' const' o 'volatile'.È una parte inseparabile di un nome di tipo, come 'short' o' long'. 'unsigned' da solo è un sinonimo di' unsigned int', quindi 'operator unsigned()' è solo un operatore per il cast di 'unsigned int'. – Oktalist