#include <filesystem>
#include <iostream>
#include <string>
#include <vector>

namespace {
    constexpr const auto k_project_name = "my-project";
}

/// @brief Convert arguments of main entry function to C++ `std` types
///
/// @param argc argument counter
/// @param argv argument vector
///
/// @return `std::pair` with program and `vector` of arguments
///
auto make_cpp_args(const int argc, const char *const argv[])
    -> std::pair<std::string, std::vector<std::string>> {
    auto program = std::filesystem::path(argv[0]).filename().string();

    auto argv_vector = std::vector<std::string>();
    for (auto argc_nr = 1; argc_nr < argc; ++argc_nr) {
        argv_vector.push_back(std::string{argv[argc_nr]});
    }

    return std::pair<std::string, std::vector<std::string>>{program,
                                                            argv_vector};
}

/// @brief Entry main function
///
/// @param argc argument counter
/// @param argv argument vector
///
/// @return program exit code (0 on success)
auto main(const int argc, const char *const argv[]) -> int {
    std::cout << "Hello, from " << k_project_name << "!\n";

    const auto [program, args] = make_cpp_args(argc, argv);

    std::cout << "The executable \"" << program << "\" has been called with "
              << args.size() << " arguments.\n";

    if (!args.empty()) {
        std::cout << std::endl;
    }

    for (const auto &arg : args) {
        std::cout << "\t- " << arg << "\n";
    }

    return 0;
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: