Eigene Resourcedatei ist nur ein paar Bytes groß



  • manni66 schrieb:

    DocShoe schrieb:

    Weil argv[2] ein const char* ist und kein std::string . Der C-style cast führt keine Konvertierung aus und verhält sich wie ein reinterpret_cast . Oder etwa nicht?

    Ächz, diese ganzen Sonderfälle machen mich fertig o.O

    Bei einer gültigen Konvertierung verhält sich der C-cast wie ein static_cast , ansonsten eher wie ein reinterpret_cast ?

    Nein, es wäre wie:

    std::string targetTex = std::string(argv[2]) + "textures.res";
    

    Sicher? Denn das 2. ist was ganz was anderes als das erste.
    Ich glaub kaum dass bei einem (std::string)argv[2] ein std::string constructor aufgerufen wird



  • firefly schrieb:

    manni66 schrieb:

    Bei einer gültigen Konvertierung verhält sich der C-cast wie ein static_cast , ansonsten eher wie ein reinterpret_cast ?
    Nein, es wäre wie:

    std::string targetTex = std::string(argv[2]) + "textures.res";
    

    Sicher? Denn das 2. ist was ganz was anderes als das erste.
    Ich glaub kaum dass bei einem (std::string)argv[2] ein std::string constructor aufgerufen wird

    Doch, das ist so. Hat mich auch schwer verwundert.



  • Ich glaub kaum dass bei einem (std::string)argv[2] ein std::string constructor aufgerufen wird

    Seit wann ist Programmieren eine Glaubensfrage?



  • Doch, es wird ein temporäres Objekt erstellt (bzw nicht, wegen RVO)

    struct Test
    {
    	int anderes[5];
    	int s;
    	Test(int i) : s(i) { std::cout << i; }
    };
    
    Test t = (Test)5;
    t = (Test)6;
    t = Test(7);
    

    Ausgabe:

    567
    


  • wob schrieb:

    Ich glaub kaum dass bei einem (std::string)argv[2] ein std::string constructor aufgerufen wird

    Seit wann ist Programmieren eine Glaubensfrage?

    Komm schon, wob. Solche Kommentare hast du doch nicht nötig 👎


Anmelden zum Antworten