// File: /workspace/github_cpp_makefile_star2_O1/Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: int CmdLineArgs::getParam<int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
T CmdLineArgs::getParam(const std::string &long_name, char short_name, T default_value, const std::string &desc)
{
    T val;
    std::ostringstream oss;
    oss << default_value;
    addUsage(long_name, short_name, oss.str(), desc);

    // First search the long names:
    //
    auto pos = findLongName(long_name);
    if( pos != args_.end() ) {

        if( pos+2 > args_.end() )
            throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a value");

        pos = args_.erase(pos);

    } else {

        pos = findShortName(short_name);
        if( pos != args_.end() ) {

            if( pos+2>args_.end() )
                throw std::runtime_error("\nError: parameter -" + std::string(1,short_name) + " is not followed by a value");

            if( pos->size()==2 )
                pos = args_.erase(pos);
            else {
                pos->erase(pos->find(short_name, 1), 1);
                ++pos;
            }
        }
    }

    if ( pos != args_.end() ) {

        std::istringstream ss(*pos);
        ss >> val;

        if( ss.fail() )
            throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a correct value");

        if( !ss.eof() ) {
            std::stringstream sshex;
            sshex << std::hex << *pos;
            sshex >> val;

            if(sshex.fail())
                throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a correct value");

            if(!sshex.eof())
                throw std::runtime_error("\nError: parameter --" + long_name + " has an incorrect value");
        }

        args_.erase(pos);
        return val;

    } else
        return default_value;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4c8, %rsp            # imm = 0x4C8
movq %r8, %r15
movl %ecx, %ebp
movl %edx, %r12d
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x350(%rsp), %r13
movq %r13, %rdi
callq 0x32a0
movq %r13, %rdi
movl %ebp, %esi
callq 0x3390
leaq 0x358(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x3300
movsbl %r12b, %r12d
leaq 0x48(%rsp), %rcx
movq %r14, %rdi
movq %rbx, %rsi
movl %r12d, %edx
movq %r15, %r8
callq 0x3c06
leaq 0x58(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x687e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3220
movq %r14, %rdi
movq %rbx, %rsi
callq 0x38ec
movq 0x8(%r14), %rcx
cmpq %rcx, %rax
je 0x69e0
leaq 0x40(%rax), %rdx
cmpq %rcx, %rdx
ja 0x6a48
movq %r14, %rdi
movq %rax, %rsi
callq 0x7a80
movq %rax, %r15
cmpq 0x8(%r14), %r15
je 0x69ab
leaq 0x1d0(%rsp), %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3360
leaq 0x1d0(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3130
movq 0x1d0(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x1f0(%rsp,%rax), %eax
testb $0x5, %al
jne 0x6aa5
testb $0x2, %al
jne 0x697b
leaq 0x48(%rsp), %rdi
callq 0x3160
leaq 0x58(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movl 0x70(%rsp,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x70(%rsp,%rax)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
callq 0x3260
leaq 0x48(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3130
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x68(%rsp,%rax), %eax
testb $0x5, %al
jne 0x6afc
testb $0x2, %al
je 0x6b56
movq 0x7634(%rip), %rsi      # 0xdf98
leaq 0x48(%rsp), %rdi
callq 0x31a0
leaq 0xc8(%rsp), %rdi
callq 0x3090
movq %r14, %rdi
movq %r15, %rsi
callq 0x7a80
movl 0x4(%rsp), %ebp
movq 0x761f(%rip), %rsi      # 0xdfb0
leaq 0x1d0(%rsp), %rdi
callq 0x32b0
leaq 0x248(%rsp), %rdi
callq 0x3090
movq 0x760e(%rip), %rsi      # 0xdfc0
leaq 0x350(%rsp), %rdi
callq 0x3110
leaq 0x3c0(%rsp), %rdi
callq 0x3090
movl %ebp, %eax
addq $0x4c8, %rsp            # imm = 0x4C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
movl %r12d, %esi
callq 0x3a58
movq %rax, %r15
movq 0x8(%r14), %rax
cmpq %rax, %r15
je 0x68b1
leaq 0x40(%r15), %rcx
cmpq %rax, %rcx
ja 0x6bb0
cmpq $0x2, 0x8(%r15)
jne 0x6a1f
movq %r14, %rdi
movq %r15, %rsi
callq 0x7a80
jmp 0x68ae
movl $0x1, %edx
movq %r15, %rdi
movl %r12d, %esi
callq 0x3290
movl $0x1, %edx
movq %r15, %rdi
movq %rax, %rsi
callq 0x3050
addq $0x20, %r15
jmp 0x68b1
movl $0x10, %edi
callq 0x30f0
movq %rax, %r14
leaq 0x35d8(%rip), %rsi      # 0xa034
leaq 0x1d0(%rsp), %rdi
movq %rbx, %rdx
callq 0x64dd
leaq 0x35d6(%rip), %rsi      # 0xa049
leaq 0x1d0(%rsp), %rdi
callq 0x33e0
movq %r13, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6c2a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x6c37
movl $0x10, %edi
callq 0x30f0
movq %rax, %r14
leaq 0x357b(%rip), %rsi      # 0xa034
leaq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0x64dd
leaq 0x3820(%rip), %rsi      # 0xa2ed
leaq 0x8(%rsp), %rdi
callq 0x33e0
movq %r13, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6c7b
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x6c88
movl $0x10, %edi
callq 0x30f0
movq %rax, %r14
leaq 0x3524(%rip), %rsi      # 0xa034
leaq 0x28(%rsp), %rdi
movq %rbx, %rdx
callq 0x64dd
leaq 0x37c9(%rip), %rsi      # 0xa2ed
leaq 0x28(%rsp), %rdi
callq 0x33e0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6ccc
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x6cd9
movl $0x10, %edi
callq 0x30f0
movq %rax, %r14
leaq 0x34ca(%rip), %rsi      # 0xa034
leaq 0x28(%rsp), %rdi
movq %rbx, %rdx
callq 0x64dd
leaq 0x3756(%rip), %rsi      # 0xa2d4
leaq 0x28(%rsp), %rdi
callq 0x33e0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6d1d
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x6d2a
movl $0x10, %edi
callq 0x30f0
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
movl %r12d, %edx
callq 0x3270
leaq 0x3486(%rip), %rsi      # 0xa065
leaq 0x1d0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x6565
leaq 0x3451(%rip), %rsi      # 0xa049
leaq 0x1d0(%rsp), %rdi
callq 0x33e0
movq %r13, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6d6b
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x6d78
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x3330
xorl %ebp, %ebp
movq 0x7389(%rip), %rsi      # 0xdff0
movq 0x734a(%rip), %rdx      # 0xdfb8
movq %r14, %rdi
callq 0x3380
jmp 0x6db7
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x3330
xorl %ebp, %ebp
movq 0x7338(%rip), %rsi      # 0xdff0
movq 0x72f9(%rip), %rdx      # 0xdfb8
movq %r14, %rdi
callq 0x3380
jmp 0x6db7
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x3330
xorl %ebp, %ebp
movq 0x72e7(%rip), %rsi      # 0xdff0
movq 0x72a8(%rip), %rdx      # 0xdfb8
movq %r14, %rdi
callq 0x3380
jmp 0x6db7
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x3330
xorl %ebp, %ebp
movq 0x7296(%rip), %rsi      # 0xdff0
movq 0x7257(%rip), %rdx      # 0xdfb8
movq %r14, %rdi
callq 0x3380
jmp 0x6db7
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x3330
xorl %ebp, %ebp
movq 0x7248(%rip), %rsi      # 0xdff0
movq 0x7209(%rip), %rdx      # 0xdfb8
movq %r14, %rdi
callq 0x3380
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x6dd9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6dd9
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e02
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6e02
movq %rax, %rbx
movb $0x1, %bpl
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6f26
movq 0x18(%rsp), %rsi
jmp 0x6eff
jmp 0x6e1e
jmp 0x6e3a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6e40
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6e40
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e6f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6e6f
jmp 0x6f80
jmp 0x6f20
jmp 0x6e69
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6f38
movq %r14, %rdi
callq 0x3190
jmp 0x6f38
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x6ea7
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6ea7
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f11
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6f11
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x6ee6
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6ee6
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f26
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6f26
jmp 0x6f85
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6f88
movq %r14, %rdi
callq 0x3190
jmp 0x6f88
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6fa9
movq %r14, %rdi
callq 0x3190
jmp 0x6fa9
movq %rax, %rbx
movq 0x7059(%rip), %rsi      # 0xdf98
leaq 0x48(%rsp), %rdi
callq 0x31a0
leaq 0xc8(%rsp), %rdi
callq 0x3090
jmp 0x6f88
jmp 0x6f80
jmp 0x6f80
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fa9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6fa9
jmp 0x6f80
jmp 0x6f80
movq %rax, %rbx
jmp 0x6fa9
movq %rax, %rbx
movq 0x7021(%rip), %rsi      # 0xdfb0
leaq 0x1d0(%rsp), %rdi
callq 0x32b0
leaq 0x248(%rsp), %rdi
callq 0x3090
movq 0x7010(%rip), %rsi      # 0xdfc0
leaq 0x350(%rsp), %rdi
callq 0x3110
leaq 0x3c0(%rsp), %rdi
callq 0x3090
movq %rbx, %rdi
callq 0x33a0