Ich habe diese Klasse, die, wenn kompiliert, gibt C2059 und C 2238 ';' beide Fehler in beiden Zeilen. Warum kompiliert dieser Code nicht?Compiler-Fehler bei der Verwendung von "= Löschen" in Visual Studio 2012
class bitreader
{
std::istream& §is;
std::uint8_t §buff;
int §n;
uint32_t read()
{
if (§n == 0) {
§buff = §is.get();
§n = 8;
}
§n--;
return (§buff >> §n) & 1;
}
public:
bitreader(std::istream& os)
: §is(os)
, §n(0)
{}
// The following two lines produce errors
bitreader(const bitreader& rhs) = delete;
bitreader& operator=(const bitreader& rhs) = delete;
uint32_t operator()(uint32_t n)
{
uint32_t val = 0;
while (n-- > 0)
val = (val << 1) | read();
return val;
}
std::istream& operator()(uint32_t& val, uint32_t n)
{
val = 0;
while (n-->0)
val = (val << 1) | read();
return §is;
}
};
Ich füge hinzu, dass der gleiche Code kompiliert ohne irgendein Problem auf meinem Freund Visual Studio. HINWEIS: Wenn ich die Zeilen kommentiere, kompiliert der Code.
Das ist ein interessantes Namensschema für Datenelemente. –
Weil die Maschinen meiner Universität das installiert haben und wir nicht installieren können, was wir wollen. Also, wenn ich die Prüfung bestehen möchte, muss ich mit der Version umgehen, die in den Labors – DDS
installiert ist Bitte stecken Sie Ihren Code richtig ein, damit wir ihn lesen können. –