I was wondering why shared_ptr doesn't have an implicit constructor. The fact it doesn't is alluded to here: Getting a boost::shared_ptr for this
(I figured out the reason but thought it would be a fun question to post anyway.)
#include <boost/shared_ptr.hpp> #include <iostream> using namespace boost; using namespace std; void fun(shared_ptr<int> ptr) { cout << *ptr << endl; } int main() { int foo = 5; fun(&foo); return 0; } /* shared_ptr_test.cpp: In function `int main()': * shared_ptr_test.cpp:13: conversion from `int*' to non-scalar type ` * boost::shared_ptr<int>' requested */