c++ - 写入按值函数参数是好的风格吗?

标签 c++

<分区>

我总是听说这样的规则,即按值更改提供给函数的参数是糟糕的编码风格。相反,最好创建一个经过修改的拷贝。

但我认为在以下情况下更改函数参数是可以接受的。您认为最好的方法是什么?

Point3f GetWorldPoint(int x, int y)
{
    x = saturate(x, 0, width);
    y = saturate(y, 0, height);

    ...
}

template<typename T>
T saturate(T val, T min, T max) {
    return std::min(std::max(val, min), max);
}

最佳答案

我要伸出我的脖子说这很好。例如:

template<class T>
Matrix4x4<T> Transpose(Matrix4x4<T> m)
{
    return m.Transpose();
}

template<class T>
Matrix4x4<T> Transpose(Matrix4x4<T> const & m)
{
    Matrix4x4<T> n(m);

    return n.Transpose();
}

哪个更简洁?

关于c++ - 写入按值函数参数是好的风格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051624/

相关文章:

c++ - 在没有额外堆分配的情况下将大 vector 分块为小 vector

c++ - _bstr_t::operator= 是什么意思?

c++ - C++中的函数调用常量传播

C++:为什么 std::greater<T>() 包含在 iostream 中?

python - 您怎么知道dnn支持的图层?

python - 如何在 cython 中制作从 C struct 到 int 的 C++ 映射?

C++ IDE 功能 : Synchronized viewing columns for headers and implementation files?

c++ - 使用 TBB 的并行性——我们的 list 中应该包含什么?

c++ - MSVC多行宏编译器错误

C++ ifstream 到 char *