Пример

int main(int argc, char* argv[])
{

fnc(std::tr1::shared_ptr<MyClass>(new MyClass));
 
}

void fnc2(std::tr1::shared_ptr<MyClass> mc){
}

Решение
Создать умный (smart) указатель в его собственном операторе.


int main(int argc, char* argv[])
{

shared_ptr<MyClass> mc(new MyClass);
fnc( mc );
 
}

void fnc2(std::tr1::shared_ptr<MyClass> mc){
}