C++ standard: ODR and constexpr std::string_view

Viewed 653

If I have a header foo.h which contains

#ifndef FOO_H_
#define FOO_H_

namespace foo {
constexpr std::string_view kSomeString = "blah";
}

#endif  // FOO_H_

then is it safe to include foo.h from within multiple .cc files in a single program, regardless of what they do with the symbol kSomeString, or are there some uses that could cause an ODR violation?

Also, is it guaranteed that kSomeString.data() will return the same pointer across .cc files?

I'd like specific references to wording in the C++ standard if possible. Thanks!

1 Answers
Related