<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 24, 2015 at 8:47 AM, Uri Mann via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">I’m updating from CLANG 3.5.0 to 3.7.0. In the 3.5.0 version I have a std::string option with validation.<u></u><u></u></p><p class="MsoNormal">struct ProjectParser : public llvm::cl::parser<std::string> {<u></u><u></u></p><p class="MsoNormal">    bool parse(llvm::cl::Option& option,<u></u><u></u></p><p class="MsoNormal">                          llvm::StringRef argName,<u></u><u></u></p><p class="MsoNormal">                          const std::string& argValue,<u></u><u></u></p><p class="MsoNormal">                          std::string& project);<u></u><u></u></p><p class="MsoNormal">};<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">llvm::cl::opt<std::string, false, ProjectParser> Project;<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This no longer compiles since the llvm::cl::parser<std::string> template was specialized and made ‘final’. The docs don’t address this issue.</p></div></div></blockquote><div><br></div><div>Sorry about that - I've an open bug telling me I need to update the docs here. I made the change to make parser final (bunch of API design reasons and that extension point wasn't needed inside LLVM/Clang - though I didn't realize we documented it as an extension point for external users)<br><br>I'm not quite sure why we documented this as a useful extension point for external users yet have no examples of using that inside the LLVM project - I imagine we do something else inside LLVM instead.<br><br>Off the cuff, I would suggest you derived from basic_parser and add the two member typedefs that parser<T> was providing for you. (but I'm still curious what LLVM does if it doesn't do the derivation from parser<T> and whether we should understand/encourage that instead)<br><br>- Dave</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Any help will be appreciated. Thanks in advance.<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></p><span class="HOEnZb"><font color="#888888"><p class="MsoNormal">-Uri<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p></font></span></div></div><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>