
On 7/5/2011 9:32 AM, Beman Dawes wrote:
On Tue, Jul 5, 2011 at 11:31 AM, Eric Niebler <eric@boostpro.com> wrote:
Let me clarify why I was asking though, because I don't think I was clear. The constructor arguments may already have the required type, but you can't really know anything about their encoding because that's not encoded in the type system. Previously, you were always running these strings through a transformation. You're presuming (and you would know best of course) that the transformation was always a no-op for arguments of this type. I was asking if you were really 100% sure.
Actually, the codecvt argument has always been ignored if the value_types were the same. See the convert() overloads in path_traits.hpp, starting at line 125. The only difference is that by introducing the two constructor value_type overloads there is no call to codecvt(), so no attempt to access a locale that may be invalid.
Since the two internal path constructions always have value_type arguments, the changet eliminates the chance of that exception being thrown before main() starts.
Thanks for the clarification. -- Eric Niebler BoostPro Computing http://www.boostpro.com