Fehler im Kompiler?
-
Warum meldet GCC in der oberen Version bei Zeile 8 keinen Fehler?
Das passiert aber nur mit s (alle Buchstaben hab ich nicht probiert).#include <iostream> #include <string> using namespace std; int main() { string str = "hello world"s; cout << str << '\n'; return 0; }
nimmt man in der unteren Version in Zeile 4 die // weg kompiliert es auch.
#include <iostream> #include <string> //using namespace std; int main() { std::string str = "hello world"s; std::cout << str << '\n'; return 0; }
-
https://en.cppreference.com/w/cpp/string/basic_string/operator""s
D.h.
auto str1 = "hello world"; // <-- str1 ist ein const char* auto str2 = "hello world"s; // <-- str2 ist ein std::string auto str3 = "hello world"sv; // <-- str2 ist ein std::string_view
Aber Achtung:
auto duration = 10s; // 10 Sekunden, ist eine std::chrono::duration
-
öh, ja, prima, danke.