Boost C++ Libraries: Ticket #9219: path::codecvt() is called when not required https://svn.boost.org/trac10/ticket/9219 <p> Some path functions (including assignment and constructor) are templated so that they can be called with arguments other than path. The templated functions are not supposed to be used when the argument is compatible with the native path string type. However, the templated functions are called anyway because the is_pathable trait is overly permissive (it returns true even for compatible types). This happens because the templated functions turn out to be more preferable than non-templated ones. For example: </p> <pre class="wiki">path p = getcwd(); // calls path::path&lt;char*&gt;(char*) instead of non-templated path::path(const char*) </pre><p> The above example is actually what happens in filesystem::current_path(), but obviously is not limited by that. </p> <p> Given the other problems with the global locale (<a class="assigned ticket" href="https://svn.boost.org/trac10/ticket/8642" title="#8642: Bugs: Global locale prevents from using Boost.Filesystem in global ... (assigned)">#8642</a>, for example) this makes Boost.Filesystem unusable for Boost.Log because there is no way to use it without requiring codecvt() to be called at some point. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9219 Trac 1.4.3 Beman Dawes Thu, 07 Aug 2014 20:50:51 GMT status, severity, milestone changed https://svn.boost.org/trac10/ticket/9219#comment:1 https://svn.boost.org/trac10/ticket/9219#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> <li><strong>severity</strong> <span class="trac-field-old">Showstopper</span> → <span class="trac-field-new">Problem</span> </li> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.57.0</span> </li> </ul> <p> I'm working this ticket now. Seems like it is a symptom of a class of errors that are difficult to test for because it is not obvious how to observe the behavior in a test framework. I'll probably post something soon to the developers list about this testing problem. </p> <p> Thanks, </p> <p> --Beman </p> Ticket Beman Dawes Sun, 17 Aug 2014 20:24:50 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/9219#comment:2 https://svn.boost.org/trac10/ticket/9219#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Non-const overloads were needed. Fixed in develop. Will merge to master in a few days. </p> <p> Thanks, </p> <p> --Beman </p> Ticket raad@… Mon, 27 Jun 2016 13:27:48 GMT cc set https://svn.boost.org/trac10/ticket/9219#comment:3 https://svn.boost.org/trac10/ticket/9219#comment:3 <ul> <li><strong>cc</strong> <span class="trac-author">raad@…</span> added </li> </ul> Ticket