sstd::printn

概要
  "printn" mean "print with name".

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

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

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

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

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

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

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

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

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

    //===

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

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

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

実行結果
$ ./exe.exe
s8 = -1
s16 = -2
s32 = -3
s64 = -4
u8 = 1
u16 = 2
u32 = 3
u64 = 4
f = -1.230000
d = -1.230000
"char*" = char*
std::string("std::string") = std::string
v_s8[4] = [ -1 2 3 4 ]
v_s16[4] = [ 1 -2 3 4 ]
v_s32[4] = [ 1 2 -3 4 ]
v_s64[4] = [ 1 2 3 -4 ]
v_u8[4] = [ 1 2 3 4 ]
v_u16[4] = [ 1 2 3 4 ]
v_u32[4] = [ 1 2 3 4 ]
v_u64[4] = [ 1 2 3 4 ]
v_f[4] = [ 1.100000 2.200000 3.300000 4.400000 ]
v_d[4] = [ 1.100000 2.200000 3.300000 4.400000 ]
v_str[2] = [ abc def ]
v_char[4] = [ a b c d ]
v_uchar[4] = [ a b c d ]
vv_s8[2] = [ [ -1 2 3 4 ] [ 5 6 7 8 ] ]
vv_s16[2] = [ [ 1 -2 3 4 ] [ 5 6 7 8 ] ]
vv_s32[2] = [ [ 1 2 -3 4 ] [ 5 6 7 8 ] ]
vv_s64[2] = [ [ 1 2 3 -4 ] [ 5 6 7 8 ] ]
vv_u8[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
vv_u16[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
vv_u32[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
vv_u64[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
vv_f[2] = [ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
vv_d[2] = [ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
vv_str = [ [ abc def ] [ ghi jkl ] ]
vv_char[2] = [ [ a b ] [ c d ] ]
vv_uchar[2] = [ [ a b ] [ c d ] ]
実装

0 件のコメント:

コメントを投稿