Florian Mücke im Netz

An agile journey and beyond

Seite 2 von 3

C++ Schlüsselwort „explicit“

Mit dem C++ Schlüsselwort „explicit“ kann man dem Compiler implizite Typumwandlungen verbieten. Dies kann manchmal ja auch ungewollt passieren, wie folgendes Beispiel zeigt:

#include 
#include 
struct MyClass
{
    MyClass(const char* name) : m_Name(name) {}
    virtual ~MyClass() {}
    const char* Who() const { return m_Name; }
private:
    const char* m_Name;
};

struct MyExplicitClass
{
    explicit MyExplicitClass(const char* name) : m_Name(name) {}
    virtual ~MyExplicitClass() {}

    const char* Who() const { return m_Name; }
private:
    const char* m_Name;
};


int main()
{
    MyClass A("a");
    MyExplicitClass B("b");
              
    A = "c";  // ok, hier funktioniert das, aber war das auch so gewollt? 
              // Auf den ersten Blick zu durchschauen ist diese Zuweisung jedenfalls nicht.

    B = "d";  // error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, 
              // der einen rechtsseitigen Operanden vom Typ 'const char [2]' akzeptiert (oder
              // keine geeignete Konvertierung möglich)

    std::cout << "A: " << A.Who() << std::endl;
    std::cout << "B: " << B.Who() << std::endl;

    return 0;
}

Nützliches im Visual Studio #1

Multi-Zwischenablage

Eher zufällig bin ich beim Coden auf ein nettes Feature im Visual Studio (2008) gestoßen: VS hat eine mehrfache Zwischenablage auf die man mittels Shift+Ctrl+V zugreifen kann. Somit kann man auch auf Sachen zugreifen, die man eigentlich schon überschrieben hat.
vs2008_clipboard

Inkrementelle Datei-Suche

Mittels Ctrl+# gelangt man in das Suchen-Feld. Dort kann man mittels <of + Dateiname Dateien öffnen. Dabei werden alle Dateien der Solution inkrementell auf die Eingabe gematcht und in einer Combobox angeboten.

EIS auf code.google.com

EIS

Easy Installation System


Mein Installations-Tool, das Easy Installation System, ist jetzt auf Google Code verfügbar. EIS ist ein vollständiges Installationssystem, das in MASM32 geschrieben wurde. Es ist in deutsch und englisch verfügbar und für RAR-Dateien ausgelegt. Weitere Details auf der Projektseite: http://code.google.com/p/eis/

Die Entscheidung es OpenSource zu machen fiel, da ich leider nicht mehr genug Zeit habe es zu pflegen. Ich fände es allerdings schade, wenn das Projekt einfach so in der Versenke verschwinden würde.

Ich werde zwar versuchen, das Projekt weiter zu verwalten, aber viel Zeit kann und will ich dafür nicht mehr investieren.

Neue Fonts in der Windows Welt

Mittlerweile gibt es ein paar hübsche neue (offizielle) Fonts in der Windows-Welt abseits Arial und Times New Roman. Diese sollen vor allem aber auch besser für Cleartype (urks!) geignet sein.
Hierzu habe ich einen interessanten Artikel gefunden, der eine kurze Übersicht der neuen bietet. Am besten gefallen hat mir persönlich dabei die serifenfreie Schriftart Corbel und die Serifenschriftart Constantia. Die monospace-Schtriftart Consolas taugt in meinen Augen überhaupt nicht als Ersatz für die gute Courier New z.B. für Text-Editoren. In Präsentationen oder Dokumenten macht sie allerdings eine ziemlich gute Figur. Vor allem die kursive Variante ist deutlich schöner als die der Courier New. Cambria ist noch eine weitere Serifenschrift, die sich aufgrund ihrer Schnörkellosigkeit gut für offizielle Dokumente eignet.

Pure virtual function call

Eine abstrakte Klasse in C++ hat mindestens eine pure virtual Funktion (gekennzeichnet durch virtual ... = 0). Diese Funktionen können per Definition nicht direkt aufgerufen werden, da sie keine Implementierung haben (auch per Definition). Sollte die Methode dennoch aufgerufen werden, wird das Programm (von der Runtime) mit der Fehlermeldung „Pure virtual function call“ abgebrochen. Weiterlesen

Erfolgreich umgezogen!

Ich habe meinen Webspaceprovider gewechselt. Dabei bin ich gleich von REDAXO auf WordPress umgestiegen, da dies eher meinem Verhalten entspricht. REDAXO ist meiner Meinung nach trotzdem ein leider viel zu unbekanntes aber dennoch einfach zu bedienendes und trotzdem sehr professionelles Content-Management-System.
Bis ich alle alten Inhalte hier wieder aufgebaut habe, wird es allerdings noch eine Weile dauern.

« Ältere Beiträge Neuere Beiträge »