#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;
}
To embed this program on your website, copy the following code and paste it into your website's HTML: