如果我有一个头foo.h
包含C++标准:ODR和constexpr的std :: string_view
#ifndef FOO_H_
#define FOO_H_
namespace foo {
constexpr std::string_view kSomeString = "blah";
}
#endif // FOO_H_
则是安全的从多个中包括foo.h
在一个程序中.cc
文件,无论他们做什么符号为kSomeString
,还是有一些可能导致ODR违规的用途?
此外,它是否保证kSomeString.data()
将返回相同的指针跨越.cc
文件?
如果可能,我想特别提及C++ standard中的措词。谢谢!
这与'string_view'具体有什么关系? –
大部分问题都是关于头文件中的'constexpr'声明,但是可能会有一些特殊的问题围绕使用C字符串进行初始化而不适用于'constexpr int'。 – jacobsa