sstd::printn_all

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

  sstd::printn_all:「呼び出し関数名 (行数): 変数名 = 値」として表示.
  sstd::printn_all_c:「呼び出し関数名 (行数): 変数名 = 文字」として表示.
使用例
#include <sstd/sstd.hpp>

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

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

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

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

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

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

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

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

    //===

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

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

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

実行結果
$ ./exe.exe
main(5): s8 = -1
main(6): s16 = -2
main(7): s32 = -3
main(8): s64 = -4
main(11): u8 = 1
main(12): u16 = 2
main(13): u32 = 3
main(14): u64 = 4
main(16): f = -1.230000
main(17): d = -1.230000
main(19): "char*" = char*
main(20): std::string("std::string") = std::string
main(24): v_s8[4] = [ -1 2 3 4 ]
main(25): v_s16[4] = [ 1 -2 3 4 ]
main(26): v_s32[4] = [ 1 2 -3 4 ]
main(27): v_s64[4] = [ 1 2 3 -4 ]
main(29): v_u8[4] = [ 1 2 3 4 ]
main(30): v_u16[4] = [ 1 2 3 4 ]
main(31): v_u32[4] = [ 1 2 3 4 ]
main(32): v_u64[4] = [ 1 2 3 4 ]
main(34): v_f[4] = [ 1.100000 2.200000 3.300000 4.400000 ]
main(35): v_d[4] = [ 1.100000 2.200000 3.300000 4.400000 ]
main(37): v_str[2] = [ abc def ]
main(39): v_char[4] = [ a b c d ]
main(40): v_uchar[4] = [ a b c d ]
main(44): vv_s8[2] = [ [ -1 2 3 4 ] [ 5 6 7 8 ] ]
main(45): vv_s16[2] = [ [ 1 -2 3 4 ] [ 5 6 7 8 ] ]
main(46): vv_s32[2] = [ [ 1 2 -3 4 ] [ 5 6 7 8 ] ]
main(47): vv_s64[2] = [ [ 1 2 3 -4 ] [ 5 6 7 8 ] ]
main(49): vv_u8[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
main(50): vv_u16[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
main(51): vv_u32[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
main(52): vv_u64[2] = [ [ 1 2 3 4 ] [ 5 6 7 8 ] ]
main(54): vv_f[2] = [ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
main(55): vv_d[2] = [ [ 1.100000 2.200000 3.300000 4.400000 ] [ 5.500000 6.600000 7.700000 8.800000 ] ]
main(57): vv_str = [ [ abc def ] [ ghi jkl ] ]
main(59): vv_char[2] = [ [ a b ] [ c d ] ]
main(60): vv_uchar[2] = [ [ a b ] [ c d ] ]
実装

0 件のコメント:

コメントを投稿