Modernes C++ programmieren

Okt 23, 2024

lst-0354-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/zMbnYzo17 
template<typename T>
auto deref(T t) {
    if constexpr (std::is_pointer_v<T>) {
        return *t;
    } else {
        return t;
    }
}
int main() {
    int i = 42;
    std::cout << deref(i) << '\n';         // direkt der Wert
    auto p = std::make_unique<int>(73);
    std::cout << deref(p.get()) << '\n';   // dereferenzierter Pointer
}