boostorg / container

STL-like containers from Boost
http://www.boost.org/libs/container/
Boost Software License 1.0
100 stars 116 forks source link

merge CTADs with equivalent parameter-declaration-clauses #94

Closed tobias-loew closed 5 years ago

tobias-loew commented 5 years ago

This PR fixes compilation errors with VS 2017 (/std:c++latest /permissive-). VS 2017 seems to have a very strict interpretation of [temp.deduct.guide] (3):

... Two deduction guide declarations in the same translation unit for the same class template shall not have equivalent parameter-declaration-clauses.

Both gcc and clang seem to ignore [temp.deduct.guide] (3), or only considering it for viable CTAD candidates.

NB: There seems to be no explicit explanation, when two parameter-declaration-clauses are equivalent, especially if templates are involved.

igaztanaga commented 5 years ago

Many thanks for the patch.