如果我有一個頭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