c++ - Implicit type conversion with reference to void* -


i want write function modifies given pointer of type; declared function accept void*&, relying on implicit conversion pointer void*. following code refuses compile, saying can't convert int*to void*&.

void f(void*& x) {         x = 0;  }  int main() {      int* = new int;     f(a);     delete a;     return 0; } 

note works fine if f declared accepting int*& (but loses generality) or if f declared accepting void* ( f can modify argument locally).

so independently "any t* void*" implicit conversion rule works, "t t& implicit conversion rule works, not both @ same time ? why ? did got wrong here ?

(i know use template function f, out of curiosity).

it's because reference bit. reference pointer 1 type not same reference pointer of type.

this can of course solved using templates:

template<typename t> void f(t*& x) { ... } 

Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -