Modernes C++ programmieren

Okt 23, 2024

lst-0808-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/6sYGnqnTj 
#include <vector>
#include <string>
#include <iostream>
#include <string_view>
using std::string; using std::string_view; using std::vector; using std::cout;
int get_len(string_view str) { return str.size(); } // string_view als Parameter
int main() {
    string s1 = "Hallo";                  // einfach mit Stringliteral
    string s2{'H','a','l','l','o'};       // oder mit Liste von char
    using namespace std::literals;        // für ""s-Suffix und ""sv-Suffix
    auto s3 = "Hallo"s;  // noch einfacher mit echtem Stringliteral
    vector<char> v1{"Hallo"};             //                          (ERR)  kein vector mit Stringliteral
    vector<char> v2{'H','a','l','l','o'}; // Liste von char ist okay
    cout << s1 << s2 << s3 << '\n';       // Ausgabe von string geht
    cout << v1 << v2 << '\n';             //                          (ERR)  vector hat keine Ausgabe
    const auto str = "String"s;           // Stringliteral
    const auto strv = "String-View"sv;    // String-View-Literal
    cout << "Laenge von 'str' ist " << get_len(str) << '\n';   // Ausgabe:  6
    cout << "Laenge von 'strv' ist " << get_len(strv) << '\n'; // Ausgabe:  11
}