On Fri, Mar 25, 2016 at 9:59 AM, Etienne Bergeron via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> etienneb created this revision.
> etienneb added a subscriber: cfe-commits.
>
> The string class contains methods which support receiving either a string
> literal or a string object.
>
> For example, calls to append can receive either a char* or a string.
> ```
>   string& append (const string& str);
>   string& append (const char* s);
> ```
>
> Which make these cases equivalent, and the .c_str() useless:
> ```
>   std::string s = "123";
>   str.append(s);
>   str.append(s.c_str());
> ```
>
> In these cases, removing .c_str()  doesn't provide any size or speed
> improvement.
> It's only a readability issue.
>

potential speed improvement by not having to search for the null terminator


>
> If the string contains embedded NUL characters,  the string literal and
> the string
> object won't produce the same semantic.
>
>
> http://reviews.llvm.org/D18475
>
> Files:
>   clang-tidy/readability/RedundantStringCStrCheck.cpp
>   test/clang-tidy/readability-redundant-string-cstr.cpp
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to