Was ist const void?

Die Beschreibung von std::is_void besagt, dass:

Stellt das Mitglied Konstanten Wert gleich true, wenn T die Typ void, const void, volatile
void,
oder const volatile void.

Dann, was das sein könnte const void oder eine volatile void ?

Diese Antwort besagt, dass const void zurück geben, wäre unwirksam (jedoch kompiliert auf VC++ 2015)

const void foo() { }

Wenn durch standard const void ungültig ist (VC, falsch) - was ist dann const void?

  • Die Antwort, die Sie link nicht, es wäre ungültig, heißt es, es wäre "sinnlos", was ich nehmen würde bedeuten ", bietet keine Vorteile gegenüber void ohne const".
  • die Antwort besagt, dass compiler sollten warnen/Fehler über eine solche Qualifikation. Ich nehme an C++ - standard nicht ermöglichen, Qualifikationen mit void
  • Die Antwort besagt, dass der compiler sollten warnen, dass über eine solche Qualifikation, die es nicht erwähnt, ein Fehler, und ein Fehler wäre falsch. Diese Bemerkung ist nur über die Qualität der Umsetzung, nicht um Konformität, aber ich kann verstehen, dass überhaupt nicht klar aus der Bemerkung selbst.
  • der standard ist nicht angegeben, es sollte eine Warnung sein, wenn Sie verwenden sinnlosen code. Es war eine Entscheidung, die die gcc geben Sie einen zusätzlichen Hinweis, dass dieser code tut nichts. Aber VC ist nicht falsch, in keiner Weise.
  • Die Antwort besagt, dass clang gibt eine Warnung aus, und das, in dem der Autor die Meinung, andere Compiler sollten. Wenn der standard hat es nicht zugelassen, es wäre ein Fehler, keine Warnung.
InformationsquelleAutor Ajay | 2016-06-17
Schreibe einen Kommentar