← index
cplusplus2x.Examples/C++20/nttp/example1/ex1.cpp
Source: cplusplus2x.Examples/C++20/nttp/example1/ex1.cpp
// page 194

#include <iostream>
#include <string>

template <size_t N>
struct Data {
    char data[N];
    const char *c_str() { return data; }
};

template <size_t N>
Data(const char (&)[N]) -> Data<N>;

template <auto prefix>
class Log {
  public:
    void log(std::string_view s) const { std::cout << prefix.data << " -> " << s << "\n"; }
};

int main(int argc, char **argv) {
    Log<Data{"Apples: "}> logger;
    logger.log("By the skin of my teeth");
    return 0;
}