
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wednesday 26 March 2008 11:08 am, Daniel Frey wrote:
But shared_from_this() requires that there must exist at least one shared_ptr instance that owns the object, which means that the use_count() is always guaranteed to be >0, hence the exception is never thrown by shared_ptr's ctor.
The exception is thrown if the user violates the requirement. Actually, on the svn trunk the requirement is looser, shared_from_this can be called before a shared_ptr has taken ownership (the docs haven't been updated to reflect that though). It's still possible to throw though, if the object outlives the shared_ptrs that own it.
Oh, and the ctor of shared_ptr therefore *can* throw something else than std::bad_alloc, right?
Yes, and it says so in the constructor's documentation. I'm not familiar with the precise rules of C++ language specification-ese, so I don't know if the blanket statement about the classes' "functions" in the intro also applies to constructors? - -- Frank -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFH6mqi5vihyNWuA4URAvuhAKDRAlY6DMuwkB7C2Toq1VKxdiKWvwCfake0 IMG6Vdh17iadvwY3Rt18KFs= =REta -----END PGP SIGNATURE-----