sstd::print

概要
  sstd::print: あらゆる型の変数を表示します.
  sstd::print_c: char型について,文字として表示します.
使用例
#include <sstd/sstd.hpp>

int main(){
    // signed
    int8  s8  = -1; sstd::print(s8);
    int16 s16 = -2; sstd::print(s16);
    int32 s32 = -3; sstd::print(s32);
    int64 s64 = -4; sstd::print(s64);

    // unsigned
    uint8  u8  = 1; sstd::print(u8);
    uint16 u16 = 2; sstd::print(u16);
    uint32 u32 = 3; sstd::print(u32);
    uint64 u64 = 4; sstd::print(u64);

    float  f  = -1.23; sstd::print(f);
    double d  = -1.23; sstd::print(d);

    sstd::print("char*");
    sstd::print(std::string("std::string"));
    
    //===

    std::vector<int8>  v_s8  = {-1, 2, 3, 4}; sstd::print(v_s8);
    std::vector<int16> v_s16 = {1, -2, 3, 4}; sstd::print(v_s16);
    std::vector<int32> v_s32 = {1, 2, -3, 4}; sstd::print(v_s32);
    std::vector<int64> v_s64 = {1, 2, 3, -4}; sstd::print(v_s64);

    std::vector<uint8>  v_u8  = {1, 2, 3, 4}; sstd::print(v_u8);
    std::vector<uint16> v_u16 = {1, 2, 3, 4}; sstd::print(v_u16);
    std::vector<uint32> v_u32 = {1, 2, 3, 4}; sstd::print(v_u32);
    std::vector<uint64> v_u64 = {1, 2, 3, 4}; sstd::print(v_u64);

    std::vector<float>  v_f = {1.1, 2.2, 3.3, 4.4}; sstd::print(v_f);
    std::vector<double> v_d = {1.1, 2.2, 3.3, 4.4}; sstd::print(v_d);

    std::vector<std::string> v_str = {"abc", "def"}; sstd::print(v_str);
    
    std::vector<char> v_char = {'a', 'b', 'c', 'd'}; sstd::print_c(v_char);
    std::vector<uchar> v_uchar = {'a', 'b', 'c', 'd'}; sstd::print_c(v_uchar);

    //===

    std::vector<std::vector<int8>>  vv_s8  = {{-1, 2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_s8);
    std::vector<std::vector<int16>> vv_s16 = {{1, -2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_s16);
    std::vector<std::vector<int32>> vv_s32 = {{1, 2, -3, 4}, {5, 6, 7, 8}}; sstd::print(vv_s32);
    std::vector<std::vector<int64>> vv_s64 = {{1, 2, 3, -4}, {5, 6, 7, 8}}; sstd::print(vv_s64);
    
    std::vector<std::vector<uint8>>  vv_u8  = {{1, 2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_u8);
    std::vector<std::vector<uint16>> vv_u16 = {{1, 2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_u16);
    std::vector<std::vector<uint32>> vv_u32 = {{1, 2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_u32);
    std::vector<std::vector<uint64>> vv_u64 = {{1, 2, 3, 4}, {5, 6, 7, 8}}; sstd::print(vv_u64);

    std::vector<std::vector<float>>  vv_f = {{1.1, 2.2, 3.3, 4.4}, {5.5, 6.6, 7.7, 8.8}}; sstd::print(vv_f);
    std::vector<std::vector<double>> vv_d = {{1.1, 2.2, 3.3, 4.4}, {5.5, 6.6, 7.7, 8.8}}; sstd::print(vv_d);

    std::vector<std::vector<std::string>> vv_str = {{"abc", "def"}, {"ghi", "jkl"}}; sstd::print(vv_str);

    std::vector<std::vector<char>> vv_char = {{'a', 'b'}, {'c', 'd'}}; sstd::print_c(vv_char);
    std::vector<std::vector<uchar>> vv_uchar = {{'a', 'b'}, {'c', 'd'}}; sstd::print_c(vv_uchar);
    printf("\n");
}

実行結果
$ ./exe.exe
-1
-2
-3
-4
1
2
3
4
-1.230000
-1.230000
char*
std::string
[ -1 2 3 4 ]
[ 1 -2 3 4 ]
[ 1 2 -3 4 ]
[ 1 2 3 -4 ]
[ 1 2 3 4 ]
[ 1 2 3 4 ]
[ 1 2 3 4 ]
[ 1 2 3 4 ]
[ 1.100000 2.200000 3.300000 4.400000 ]
[ 1.100000 2.200000 3.300000 4.400000 ]
[ abc def ]
[ a b c d ]
[ a b c d ]
[ [ -1 2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1 -2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1 2 -3 4 ] [ 5 6 7 8 ] ]
[ [ 1 2 3 -4 ] [ 5 6 7 8 ] ]
[ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
[ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
[ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
[ [ abc def ] [ ghi jkl ] ]
[ [ a b ] [ c d ] ]
[ [ a b ] [ c d ] ]
実装

0 件のコメント:

コメントを投稿