http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53000
--- Comment #16 from Daniel Krügler <daniel.kruegler at googlemail dot com> 2012-10-10 10:55:02 UTC --- (In reply to comment #12) > So we now have: > > common_type<const int&>::type -> const int& > common_type<const int&,const int&>::type -> int > > ? > > If we are going with this resolution, I think the 1 argument version should > derive from decay. I noticed the same problem recently, when playing around with a variadic make_array function (search in the test-suite for it once Paolo has committed my recent changes to the main line). The problem is now that common_type is now dependent on the size of the variadic argument expansion. Personally I feel uncertain what the best approach would be: Declaring LWG 2141 as NAD (and fix the affected other places in the library, which at least unique_ptr's comparison functions), or add decay to the unary form or finally keeping the P/R. I'm in the process of sending a message to the LWG group with the make_array as an example to make LWG of this problem aware. I have no problem to accept that we undo the 2141 application in the library, if this is what you would like to see for the moment. This is also a message to the committee.