passing const pointer by reference
===

I am confused that why following code is not able to compile 


    int foo(const float* &a) {
        return 0;
    }
    int main() {
        float* a;
        foo(a);

        return 0;
    }

Compiler give error as:  
>>error: invalid initialization of reference of type 'const float*&' from expression of type 'float*'


but when I try to pass without by reference in foo, it is compiling fine.  

I think it should show same behavior whether I pass by reference or not.
 
Thanks,

