Excluding std::pair constructors that use explicit construction?

But this digresses from the text of the standard An implementation is allowed to add default arguments to any non-virtual library member function. This seems to permit precisely this kind of SFINAE tricks.

It also seems to contradict what the linked blog posting states. – awoodland yesterday 2 In 17.6.5.5/2 (according to my copy of n3290). – n.m.

Yesterday that solves that one for me quite nicely - I half wonder if it's a new relaxation of the rules or not, but that's probably wondering a bit far off the original question now. – awoodland yesterday 1 @awoodland : It's not new, C++98 permitted the same (as well as default template arguments on template classes); this is why it's always been illegal to forward-declare any standard library identifiers. – ildjarn yesterday.

I was missing two pieces of information: gcc uses this: template::value && std::is_convertible::value>::type> pair(_U1&& __x, _U2&& __y) : first(std::forward(__x)), second(std::forward(__y)) { } The trick seems to be in the default for the anonymous class template parameter. I'd not seen that before and this implementation didn't use that. I missed that gcc actually implemented this.

1 Default template parameters for non-class templates is a very recent feature. Using that limits portability to 1 or 2 compilers. Even fewer six months ago.

:-) – Bo Persson yesterday.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions