This patch updates the shared_ptr tests so that they more closely and more completely match the standard. I think it is essential that these tests match exactly what the standard says and test it completely because I am going to use them when making significant changes to shared_ptr.
For reference here is the relevant section of the current standard.
Currently, I have only updated the constructor tests. However, I plan on updating all of the shared_ptr tests (either in this patch or another).
Two points here.
In C++03, we have an emulation of static_assert that is a macro. Sadly, like all macros, it gets confused by commas. "Is this a comma in the expression, or another macro parameter?" Hence, the extra parenthesis which you removed. Please put them back.
Also, why not use ASSERT_SAME_TYPE?