My C++ sensible prelude.
at main 1.0 kB view raw
1/* ======================================================================== 2 * 3 * Filename: prelude.hpp 4 * Description: C++ sensible prelude - Definitions 5 * Author: Diego A. Estrada Rivera 6 * Version: 0.0.4 7 * 8 * ======================================================================== */ 9#include "prelude.hpp" 10#include <span> 11 12/* type-safe main */ 13I32 main(const I32 argc, const Handle<const CString> argv) 14{ 15 proc Main(std::span<const std::string_view>) noexcept -> I32; 16 let args = std::vector<std::string_view>( 17 argv, std::next(argv, static_cast<std::ptrdiff_t>(argc))); 18 return Main(args); 19} 20 21/* Sensible IO */ 22#include <iostream> 23 24proc getLine() noexcept -> String 25{ 26 var str = String(); 27 getline(std::cin, str); 28 return str; 29} 30 31proc getChar() noexcept -> Char 32{ 33 var c = Char(); 34 std::cin >> c; 35 return c; 36} 37 38proc print(const std::string_view& f) noexcept -> Unit 39{ 40 std::cout << f; 41 return Unit(); 42} 43 44proc println(const std::string_view& f) noexcept -> Unit 45{ 46 std::cout << f << std::endl; 47 return Unit(); 48}