Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

`constexpr char kFoo[] = "bar"`, then kFoo can be used like an std::string and passed into things that take const std::string& or string_view. The length is part of that. Or is that actually doing a copy?


For both const std::string& and std::string_view, you're (potentially) incurring a runtime invocation of strlen.

For const std::string&, you're further incurring a copy in order to create a temporary std::string.


Whoops. As you can maybe tell, the stuff I use C++ for isn't so much about performance.


I think you still need the length though unless you can guarantee the string will never have any nulls in it. In Windows, there are API calls that take strings with embedded nulls (and that are typically terminated with a two nulls in a row).

So you might need to deal with a string that looks like "foo\0bar\0\0".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: