// File: /workspace/github_cpp_makefile_star2_O2/Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: float CmdLineArgs::getParam<float>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char, float, 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 %r12
pushq %rbx
subq $0x4d0, %rsp            # imm = 0x4D0
movq %rcx, %r15
movss %xmm0, 0x8(%rsp)
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x358(%rsp), %r12
movq %r12, %rdi
callq 0x3290
movq %r12, %rdi
movss 0x8(%rsp), %xmm0
callq 0x31a0
leaq 0x360(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x32f0
movsbl %bpl, %ebp
leaq 0x50(%rsp), %rcx
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, %edx
movq %r15, %r8
callq 0x39bc
leaq 0x50(%rsp), %rdi
callq 0x30e0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3780
movq 0x8(%r14), %rcx
cmpq %rcx, %rax
je 0x6aef
leaq 0x40(%rax), %rdx
cmpq %rcx, %rdx
ja 0x6b55
movq %r14, %rdi
movq %rax, %rsi
callq 0x5528
movq %rax, %r15
cmpq 0x8(%r14), %r15
je 0x6acc
leaq 0x1d8(%rsp), %rdi
pushq $0x8
popq %rdx
movq %r15, %rsi
callq 0x3350
leaq 0x1d8(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x33f0
movq 0x1d8(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x1f8(%rsp,%rax), %eax
testb $0x5, %al
jne 0x6bbd
testb $0x2, %al
jne 0x6aa8
leaq 0x50(%rsp), %rdi
callq 0x3160
leaq 0x60(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movl 0x78(%rsp,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x78(%rsp,%rax)
movq %r15, %rsi
callq 0x3200
leaq 0x50(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x33f0
movq 0x50(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x70(%rsp,%rax), %eax
testb $0x5, %al
jne 0x6c1f
testb $0x2, %al
je 0x6c81
leaq 0x50(%rsp), %rdi
callq 0x31b0
movq %r14, %rdi
movq %r15, %rsi
callq 0x5528
movss 0xc(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x30f0
leaq 0x358(%rsp), %rdi
callq 0x3050
movss 0x8(%rsp), %xmm0
addq $0x4d0, %rsp            # imm = 0x4D0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
movl %ebp, %esi
callq 0x3862
movq %rax, %r15
movq 0x8(%r14), %rax
cmpq %rax, %r15
je 0x69f8
leaq 0x40(%r15), %rcx
cmpq %rax, %rcx
ja 0x6ce0
cmpq $0x2, 0x8(%r15)
jne 0x6b2d
movq %r14, %rdi
movq %r15, %rsi
callq 0x5528
jmp 0x69f5
pushq $0x1
popq %r12
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x3280
movq %r15, %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0x3040
addq $0x20, %r15
jmp 0x69f8
pushq $0x10
popq %rdi
callq 0x3110
movq %rax, %r14
leaq 0x14cd(%rip), %rsi      # 0x8034
leaq 0x1d8(%rsp), %rdi
movq %rbx, %rdx
callq 0x554c
leaq 0x14cb(%rip), %rdx      # 0x8049
leaq 0x50(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x552d
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x3320
xorl %ebp, %ebp
movq 0x5447(%rip), %rsi      # 0xbff0
movq 0x5410(%rip), %rdx      # 0xbfc0
movq %r14, %rdi
callq 0x3370
jmp 0x6d5d
pushq $0x10
popq %rdi
callq 0x3110
movq %rax, %r14
leaq 0x1465(%rip), %rsi      # 0x8034
leaq 0x10(%rsp), %rdi
movq %rbx, %rdx
callq 0x554c
leaq 0x170a(%rip), %rdx      # 0x82ed
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x552d
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x3320
xorl %ebp, %ebp
movq 0x53e5(%rip), %rsi      # 0xbff0
movq 0x53ae(%rip), %rdx      # 0xbfc0
movq %r14, %rdi
callq 0x3370
jmp 0x6d5d
pushq $0x10
popq %rdi
callq 0x3110
movq %rax, %r14
leaq 0x1403(%rip), %rsi      # 0x8034
leaq 0x30(%rsp), %rdi
movq %rbx, %rdx
callq 0x554c
leaq 0x16a8(%rip), %rdx      # 0x82ed
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x552d
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x3320
xorl %ebp, %ebp
movq 0x5383(%rip), %rsi      # 0xbff0
movq 0x534c(%rip), %rdx      # 0xbfc0
movq %r14, %rdi
callq 0x3370
jmp 0x6d5d
pushq $0x10
popq %rdi
callq 0x3110
movq %rax, %r14
leaq 0x13a1(%rip), %rsi      # 0x8034
leaq 0x30(%rsp), %rdi
movq %rbx, %rdx
callq 0x554c
leaq 0x162d(%rip), %rdx      # 0x82d4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x552d
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x3320
xorl %ebp, %ebp
movq 0x5321(%rip), %rsi      # 0xbff0
movq 0x52ea(%rip), %rdx      # 0xbfc0
movq %r14, %rdi
callq 0x3370
jmp 0x6d5d
pushq $0x10
popq %rdi
callq 0x3110
movq %rax, %r14
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rsi
movl %ebp, %edx
callq 0x3250
leaq 0x135b(%rip), %rsi      # 0x8065
leaq 0x1d8(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x55c2
leaq 0x1326(%rip), %rdx      # 0x8049
leaq 0x50(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x552d
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x3320
xorl %ebp, %ebp
movq 0x52a2(%rip), %rsi      # 0xbff0
movq 0x526b(%rip), %rdx      # 0xbfc0
movq %r14, %rdi
callq 0x3370
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x30e0
jmp 0x6d72
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x1d8(%rsp), %rdi
callq 0x30e0
jmp 0x6d87
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x10(%rsp), %rdi
jmp 0x6e17
jmp 0x6d95
jmp 0x6da4
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x30e0
jmp 0x6daa
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x30(%rsp), %rdi
callq 0x30e0
testb %bpl, %bpl
jne 0x6dca
jmp 0x6e42
jmp 0x6e65
jmp 0x6e32
jmp 0x6dc7
movq %rax, %rbx
movq %r14, %rdi
callq 0x3190
jmp 0x6e42
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x30e0
jmp 0x6de9
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x10(%rsp), %rdi
callq 0x30e0
testb %bpl, %bpl
jne 0x6e28
jmp 0x6e6d
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x30e0
jmp 0x6e0f
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x1d8(%rsp), %rdi
callq 0x30e0
testb %bpl, %bpl
jne 0x6e35
jmp 0x6e7a
jmp 0x6e6a
movq %rax, %rbx
movq %r14, %rdi
callq 0x3190
jmp 0x6e6d
movq %rax, %rbx
movq %r14, %rdi
callq 0x3190
jmp 0x6e7a
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x31b0
jmp 0x6e6d
jmp 0x6e65
jmp 0x6e65
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x30e0
jmp 0x6e7a
jmp 0x6e65
jmp 0x6e65
movq %rax, %rbx
jmp 0x6e7a
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
callq 0x30f0
leaq 0x358(%rsp), %rdi
callq 0x3050
movq %rbx, %rdi
callq 0x3390
nop