- Seite 15:
map<string<,vector<int>>
- Seite 133, letzte Textzeile: “In
main
wird die aber beiopf.return reset(nullptr)
…” - Seite 139, Listing 19.2: “
Base *p = new Base Derived {}
“ - Seite 161, Listing 22.4: “
return Thing(forward<T>(t), forward<TU>(u), forward<TV>(v));
“ - Seite 172, letzter Absatz …
Other articles
Errata (C++ Handbuch 2017)
- S. 30, Satzfehler [(nur 1. Auflage)]{style=”color: #aaa;”}
- Mir sind an einigen Stellen “~~\newline~~” in den Text geraten, die dort nicht hingehören.
- S. 63, Listing 4.2, Tippfehler [(nur 1. Auflage)]{style=”color: #aaa;”}
if(!cin) {
muss seinif(!std::cin) {
.- S. 63, Text unter Listing unten, Fehler [(nur …
Errata (C++ Einführung)
Seite 50: #include, da fehlt das “l”.
Kapitel 14.1, Fehlerbehandlung mit Rückgabewerten
Im Buch steht in Listing 14.1, Seite 207:
Zeile 12: int count = 0 // am EOF wird noch ein Wort gelesen Zeile 18: return count - 1;
wobei im Beispiellisting
28-codes.cpp
aber stehtread moreZeile 12: int count …
Auto und for-Schleifen
Nein, man lernt tatsächlich nie aus. Seit C++11 können wir ja schreiben
vector data{}; ... for(auto e : data) { cout << e; };
Das ist schon ganz schön praktisch gegenüber
read morefor(vector it=data.begin();...) { cout << *it; }
, hat aber den großen Nachteil, dass erstense
hier oimmer kopiert wird und zweitens Änderungen …FAQ001: modern102.cpp compiliert nicht auf Microsoft Visual Studion 2012
FAQ
Habe soweit das Programm modern102.cpp in Visual Studio 2012 übernommen. Wenn ich das Prgramm ausführen lassen möchte, bekomme ich als Fehlermeldung:
error C2601: ‘table’: Lokale Funktionsdefinitionen sind unzulässig
Mir wird genau an der Stelle:
…static std::map\<int, int> table{};…
bei der geschweiften Klammer angezeigt, dass was nicht …
Kein rand() mehr
Soso, der C++14-Standard wurde also einstimmig angenommen. Ende des Jahres werden wir also das Update kaufen können. Natürlich kann man auch den kostenlosen letzten “Working Draft” nehmen, aber ein paar kleine Änderungen sind da nicht enthalten.
Wie zum Beispiel, dass das von C kommende rand() als Funktion nicht mehr …
read moreStringly typed languages
Ich bin auf eine Liste von Namen für Programmierparadigmen gestoßen, die wir alle kennen, aber denen köstliche und einprägsame Namen gegeben wurden:
- Die Joda-Bedingung
if(value.equals("Wert"))
` ersetztif("Wert".equals(value))
- Pokemon Exception Handling wenn man einfach mit
try { block } catch(...) { handler }
alles fängt. - Egyptian brackets ist, enn …
- Die Joda-Bedingung
class X : public Y ist böse -- concepts lite, gut?
Hier wird argumentiert, dass in Java
extends
“böse” ist.Während die Formel “ist böse” natürlich zu einfach ist, stimme ich der Argumentation jedoch zu und ich finde es schön begründet. Mal weniger theoretisch als auch schön an praktischen Beispielen.
In C++ entspricht das wohl dem, dass man besser type traits …
read moreGame of Writing
Was ich hier einem Freund über George R. Martin geschrieben habe will ich euch nicht vorenthalten. Ich hoffe es kommt auch unübersetzt rüber.
Actually, I can totally follow that reasoning. Not that I think of it I myself have the most proliferating writing sessions bereft of my internet connection: Either …
Keine Wert-Initialisierung mehr? -- oder eine Fürsprache für Privatisierung
Ist es nicht ein Segen, dass man eine eigene neue Klasse auf sooo viele Arten Initialisieren kann?
struct Person { string name_; int alter_; string ort_; };
Nur 3 Membervariablen, aber 4 tolle Möglichkeiten zum Initialisieren:
Person otto {"Otto", 44, "Aachen"}; Person hans {"Hans", 33}; Person paul {"Otto"}; Person kurt {};
Weil wir …
read moreBuch: A Tour of C++
Soso, da gibt es also ein neues Buch vom Erfinder: A Tour of C++, Bjarne Stroustrup.
Ich habe viele Stimmen gehört, die sein Standardwerk zum C++-Standard gut fanden, aber vielleicht war ich damals einfach zu früh.
Ein schneller Blick in sein neues – viel schlankeres – Werk ist nach meinem Geschmack …
read moreSwap-Operator?
Manuelles Swap
Elemente zu vertauschen ist an vielen Stellen eine gefährliche Operation. Zu Zeiten ohne Exceptions und ohne * Multithreading* war vertauschen noch einfach:
Typ temp = a; a = b; b = temp;
Aber was passiert hier genau:
Typ temp = a;
– erzeugt eine neue Instanz und initialisiert sie mita
, per Copy Constructor …
Endorsing-Unsinn
Mal was ganz anderes. Wöchentlich bekomme ich von Linkedin Mails, wie folgt:
Torsten,
Congratulations! Your connection Xyz Abc has endorsed you for the following skills and expertise:
Perl
Zugegeben, ich habe mein Profil vor ca 11 Jahren dort erstellt, als ich aus der Bioinformatik (Perl-lastig) heraus einen neuen Job suchte …
read moremake_unique
Was für ein Überseher! Da gibt es die wichtige und nützliche Funktion
read moremake_shared()
um einenshared_ptr
ssicher zu erzeugen, und in dem ganzen Trubel um die Fertigstellung von C++11 wurde das Pendantmake_unique()
übersehen. Das lässt sich zum Glück leicht korrigieren und die meisten C++11-konformen …GCC C++ Coding Guidelines als Guideline?
Der GCC hat nun eine C++-Implementierung für alle drei Compilerphasen.
Da lohnt es sich mal einen Blick darauf zu werfen, was Gnu von C++ alles nutzen möchte. C++ ist nunmal eine große Sprache und man muss sich in einem Projekt entscheiden, was man davon nutzen will.
Ich fasse mal …
read moreC++ Networking als Teil des Standards
Natürlich wird es nicht ein paar Jahre dauern bis aus der Ankündigung, dass eine Arbeitsgruppe die Arbeit aufnimmt letztlich ein Standard wird, aber es geht vorwärts.
Im Oktober will die Study Group 4 Ideen zur Standardisierung zur Netzwerkprogrammierung vorstellen: IPv4 und IPv6-Adressen, Adressen auflösen, Ports und URIs, Datagramm- und Netzwerk-Streams …
read moreEffective C++11 -- Scotts erste Ideen
Scott Meyers hat erste Ideen zu seinen Empfehlungen für ein potentielles Effective C++11.
Einige Kandidaten findet man indirekt auch in C++11 programmieren
- “Prefer auto to Explicit Type Declarations” – die Vorteile werden in
[typeinfer.auto]
besonders beschrieben, aber auch an vielen anderen Stellen - “Prefer non-member begin/end to member …
- “Prefer auto to Explicit Type Declarations” – die Vorteile werden in
Schrödinger programmiert C++
…Das etwas andere Lehrbuch (Galileo Computing)
Ich kann dieses Buch sehr empfehlen.
Es liefert einen guten Einstieg in C++.
Es ist locker geschrieben, bleibt aber dennoch bei den Fakten. Es bringt die C++igen Konzepte durchaus herüber, ist jedoch nicht dogmatisch. Der Leser wird auch nützliche C’ismen erlernen, aber …
read moreMit C++11 hört C++ nicht auf -- unbounded-precision integer types
Mit der Verabschiedung von C++11 gibt sich die Gemeinde natürlich nicht zufrieden. Auch C++ wird sich natürlich noch weiter entwickeln. Einige Dinge wurden aus C++0x herausgelassen, damit “0x” es letztendlich wenigstens “11” werden konnte. Man wird aber sicher alte Bekannte irgendwann wiedersehen.
Dazu gehören zuvorderst natürlich die Concepts …
read more