To pass build in types by reference.

Code + Asm
Code:
	1	#include <iostream>
 	2	
 	3	void function(const int a)
-	4	{
-	5	    int x = a;
-	6	}
 	7	
 	8	int main()
-	9	{
-	10	    function(10);  
-	11	    return 0;
-	12	}
Code:
-	0x40139e	<main>:		push   ebp
-	0x40139f	<main+1>:		mov    ebp,esp
-	0x4013a1	<main+3>:		sub    esp,0x8
-	0x4013a4	<main+6>:		and    esp,0xfffffff0
-	0x4013a7	<main+9>:		mov    eax,0x0
-	0x4013ac	<main+14>:		add    eax,0xf
-	0x4013af	<main+17>:		add    eax,0xf
-	0x4013b2	<main+20>:		shr    eax,0x4
-	0x4013b5	<main+23>:		shl    eax,0x4
-	0x4013b8	<main+26>:		mov    DWORD PTR [ebp-4],eax
-	0x4013bb	<main+29>:		mov    eax,DWORD PTR [ebp-4]
-	0x4013be	<main+32>:		call   0x40d080 <_alloca>
-	0x4013c3	<main+37>:		call   0x40ccc0 <__main>
-	0x4013c8	<main+42>:		mov    DWORD PTR [esp],0xa
-	0x4013cf	<main+49>:		call   0x401390 <_Z8functioni>
-	0x4013d4	<main+54>:		mov    eax,0x0
-	0x4013d9	<main+59>:		leave  
-	0x4013da	<main+60>:		ret
And by reference
Code:
 	1	#include <iostream>
 	2	
 	3	void function(const int &a)
-	4	{
-	5	    int x = a;
-	6	}
 	7	
 	8	int main()
-	9	{
-	10	    function(10);  
-	11	    return 0;
-	12	}
Code:
-	0x4013a0	<main>:		push   ebp
-	0x4013a1	<main+1>:		mov    ebp,esp
-	0x4013a3	<main+3>:		sub    esp,0x18
-	0x4013a6	<main+6>:		and    esp,0xfffffff0
-	0x4013a9	<main+9>:		mov    eax,0x0
-	0x4013ae	<main+14>:		add    eax,0xf
-	0x4013b1	<main+17>:		add    eax,0xf
-	0x4013b4	<main+20>:		shr    eax,0x4
-	0x4013b7	<main+23>:		shl    eax,0x4
-	0x4013ba	<main+26>:		mov    DWORD PTR [ebp-8],eax
-	0x4013bd	<main+29>:		mov    eax,DWORD PTR [ebp-8]
-	0x4013c0	<main+32>:		call   0x40d080 <_alloca>
-	0x4013c5	<main+37>:		call   0x40ccc0 <__main>
-	0x4013ca	<main+42>:		mov    DWORD PTR [ebp-4],0xa
-	0x4013d1	<main+49>:		lea    eax,[ebp-4]
-	0x4013d4	<main+52>:		mov    DWORD PTR [esp],eax
-	0x4013d7	<main+55>:		call   0x401390 <_Z8functionRKi>
-	0x4013dc	<main+60>:		mov    eax,0x0
-	0x4013e1	<main+65>:		leave  
-	0x4013e2	<main+66>:		ret
Now by just looking at the ASM it seems that calling a built in type by passing not by reference is a faster method, is this true or am I just not interperting this right. No, I don't care that much about speed more of a knowledge question.