C++ 事实上,这是相当愚蠢的(但越来越好)。在我的例子中,当你看到get_length(CString)时,即使是一个视图也比我想要的要愚蠢,这就是“编译器”,这是最有效的解决方法that@Mordachai明确地说,你不需要任何范围就可以有一个好的解决方案。s

C++ 事实上,这是相当愚蠢的(但越来越好)。在我的例子中,当你看到get_length(CString)时,即使是一个视图也比我想要的要愚蠢,这就是“编译器”,这是最有效的解决方法that@Mordachai明确地说,你不需要任何范围就可以有一个好的解决方案。s,c++,parameter-passing,pass-by-reference,temporary-objects,C++,Parameter Passing,Pass By Reference,Temporary Objects,事实上,这是相当愚蠢的(但越来越好)。在我的例子中,当你看到get_length(CString)时,即使是一个视图也比我想要的要愚蠢,这就是“编译器”,这是最有效的解决方法that@Mordachai明确地说,你不需要任何范围就可以有一个好的解决方案。string\u view将在没有范围的情况下标准化。范围主要是好的构图所必需的,这不是这里要做的。 void fn(const SomeType& t) { // stuff to do with const lvalue }


事实上,这是相当愚蠢的(但越来越好)。在我的例子中,当你看到get_length(CString)时,即使是一个视图也比我想要的要愚蠢,这就是“编译器”,这是最有效的解决方法that@Mordachai明确地说,你不需要任何范围就可以有一个好的解决方案。
string\u view
将在没有范围的情况下标准化。范围主要是好的构图所必需的,这不是这里要做的。
void fn(const SomeType& t)
{
    // stuff to do with const lvalue
}

void fn(SomeType&&) = delete; // compiler error if you give me an rvalue
template <class T, std::enable_if_t<std::is_same<std::decay_t<T>, CString>::value, int> = 0>
void fn(const T&) {

}