// File: swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> swxJson::Json::wantQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>()
std::queue<T, Container> wantQueue()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

		std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
		std::queue<T, Container> res;

		for (auto& node: *data)
			res.push((T)(*node));

		return res;
	}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpl $0x1, (%rax)
je 0x57459
movb $0x1, 0x83(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x8(%rsp)
leaq 0x97(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x4a530
movq 0x10(%rsp), %rdx
leaq 0x2b27a(%rip), %rsi     # 0x82619
leaq 0x98(%rsp), %rdi
callq 0x4dcf0
jmp 0x573ae
movq 0x8(%rsp), %rdi
leaq 0x2b219(%rip), %rsi     # 0x825d3
leaq 0x2b282(%rip), %rdx     # 0x82643
movl $0x34f, %ecx            # imm = 0x34F
leaq 0x98(%rsp), %r8
callq 0x52cd0
jmp 0x573d5
movq 0x8(%rsp), %rdi
movb $0x0, 0x83(%rsp)
leaq 0x407d7(%rip), %rsi     # 0x97bc0
leaq -0x46c0(%rip), %rdx     # 0x52d30
callq 0x4a500
jmp 0x57575
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x57431
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x4a5b8
leaq 0x97(%rsp), %rdi
callq 0x4a390
testb $0x1, 0x83(%rsp)
jne 0x5744a
jmp 0x57454
movq 0x8(%rsp), %rdi
callq 0x4a220
jmp 0x57568
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movb $0x0, 0x77(%rsp)
callq 0x57580
movq 0x78(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rdi
callq 0x52f20
movq %rax, 0x60(%rsp)
movq 0x68(%rsp), %rdi
callq 0x553e0
movq %rax, 0x58(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x55410
testb $0x1, %al
jne 0x574b6
jmp 0x5753b
leaq 0x60(%rsp), %rdi
callq 0x531d0
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rdi
callq 0x53200
movq %rax, %rsi
leaq 0x30(%rsp), %rdi
callq 0x53230
jmp 0x574de
movq 0x18(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x575b0
jmp 0x574ef
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
leaq 0x60(%rsp), %rdi
callq 0x55460
jmp 0x5749e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x5755e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
jmp 0x5755e
movb $0x1, 0x77(%rsp)
testb $0x1, 0x77(%rsp)
jne 0x57551
movq 0x18(%rsp), %rdi
callq 0x57320
movq 0x20(%rsp), %rax
addq $0xc8, %rsp
retq
movq 0x18(%rsp), %rdi
callq 0x57320
movq 0x88(%rsp), %rdi
callq 0x4a520
nopw %cs:(%rax,%rax)
nop