Konvertierung von std::string_view std::string ist implizit. Was zum Teufel hatte Committee denken?

Ernst, was ist nicht bis. Es ist eine implizite Konvertierung von std::string zu std::string_view und es nicht als unsicher. Auch wenn dies sicherlich dazu führen, eine Menge hängende Referenzen, wenn die Programmierer nicht aufpassen.

Auf der anderen Seite, die Sie abgewiesen haben eine implizite Konvertierung von std::string_view zu std::string mit demselben argument, jedoch in völlig entgegengesetzte Art und Weise: , weil die Programmierer können nicht vorsichtig.

Es ist schön, dass Sie erstellt haben, ein Ersatz für eine raw - const char* Zeiger und macht es super verwirrend und gestrippt bis auf die Knochen:

  • Implizite const char* -> std::string: OK
  • Implizite std::string_view -> std::string:
  • Zuordnung std::string = const char* : OK
  • Zuordnung std::string = std::string_view: OK
  • Anhängen std::string += const char* : OK
  • Anhängen std::string += std::string_view: OK
  • Verkettung const char* + std::string: OK
  • Verkettung std::string_view + std::string:
  • Verkettung std::string + const char*: OK
  • Verkettung std::string + std::string_view:

Bin ich etwas fehlt, oder ist das ein totaler Unsinn?

In der Ende, wie sinnvoll ist diese Zeichenfolge anzuzeigen, ohne alle wichtigen Stücke, die machen es ähnlich wie const char*? Was ist der Punkt, der die Integration in das ökosystem der stdlib zwar nicht, den letzten Schritt, um es vollständig zu machen? Nach allem, wenn wir gerade brauchen würde, dass ein Objekt, das stellt ein Stück einer Schnur konnten wir unsere eigene schreiben. Tatsächlich, eine Menge von Bibliotheken, die schon seit Jahren. Der springende Punkt, dass Sie etwas standard ist, ist es nützlich für die unterschiedlichsten Anwendungsfälle, nicht wahr?

Sind Sie gehen, um dieses Problem beheben in C++2a?

  • Ich werde die Abstimmung zu schließen, ist diese Frage off-topic, denn das ist keine Frage, dies ist ein rant.
  • Dies ist wahrscheinlich gehört zur reddit.com/r/cpp (einige C++ - Komitee-Mitgliedern Lesen.)
  • Es scheint etwas unfair, dass diese Frage, deren Erörterung würde helfen, viele Programmierer, die geschlossen wurde
  • dies ist in der Tat eine Frage. Es ist auch ein rant, aber das heißt nicht, dass es nicht die Frage. Die OP ist Ausdruck legitimen Schock, völlig verständlich, IMO, die überhaupt nicht davon ablenken, dass die technische Legitimität und Nützlichkeit in Frage. Es wäre toll, wenn die Frage könnte wieder geöffnet werden.
InformationsquelleAutor GreenScape | 2017-11-28
Schreibe einen Kommentar