Als «language-lawyer» getaggte Fragen

Bei Fragen zu den Feinheiten formaler oder maßgeblicher Spezifikationen von Programmiersprachen und -umgebungen.



2
Warum zerfällt ein leeres String-Literal in einem mehrdimensionalen Array in einen Nullzeiger?
Ich möchte ein mehrdimensionales C-String-Array definieren, das durch mehrere String-Literale initialisiert wird. In C würde ich folgendes tun: #include <stdio.h> const char *strArr[2][1] = { {"foo"}, {""}}; int main(void) { printf("%p\t%p\n", strArr[0][0], strArr[1][0]); return 0; } Kompilieren mit gcc -std=c18 -pedantic test.cund Ausführen von Ergebnissen in: $ ./a.out 0x55d95410f004 0x55d95410f008 …

1
Ist es möglich, in einer using-Deklaration auf eine benutzerdefinierte Konvertierungsvorlage zu verweisen?
In einer Klasse, Bdie von einer Klasse erbt A, ist es möglich, eine usingDeklaration zu verwenden, um Mitglieder Ain Bsogar Vorlagen wie diese zu bringen: struct A { template <typename T> void foo(); }; struct B : private A { using A::foo; }; Aber kann es für Konvertierungsvorlagen gemacht werden? …

1
Kann ein Compiler die Implementierung eines implizit deklarierten virtuellen Destruktors in einer einzelnen separaten Übersetzungseinheit platzieren?
Der folgende Code kompiliert und verknüpft mit Visual Studio(sowohl 2017 als auch 2019 mit /permissive-), kompiliert jedoch nicht mit entweder gccoder clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct Bar; std::unique_ptr<Bar> bar_; }; foo.cpp …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.