C++ - if 语句简化

标签 c++ if-statement

<分区>

Possible Duplicate:
How can I check whether multiple variables are equal to the same value?

有没有办法这样写:

    if ((var1==var2) && (var2==var3) && (var3==var4) ...)

变成这样

    if (var1==var2==var3==var4 ...)

?

最佳答案

在 C++11 中,您可以像这样编写一组函数:

template<typename T>
bool all_equal(T const &)
{
    return true;
}

template<typename T, typename U, typename... Args>
bool all_equal(T const & a, U const & b, Args const&... c)
{
    return a==b && all_equal(b,c...);
}

int main()
{
    std::cout << all_equal(1,2,3) << '\n';
    std::cout << all_equal(1,1,1) << '\n';
}

编辑:我猜 Steve Jessop 对链接拷贝有同样的想法 here

关于C++ - if 语句简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143736/

相关文章:

表单中的 JavaScript 变量

c++ - std::string 会删除它通过析构函数中的 assign 方法获取的内容吗

ios - 使用 case switch 而不是多个 if 语句来处理错误

C++ 模板 : Calling member function of derived template class from base class

c++ - 如何将新表单添加到现有的 C++ 项目中?

javascript - if 语句将具有 `is-inactive` 类的玩家添加到输入的问题

javascript - 使用 Object.assign 循环访问对象内的对象

java - 我无法获得更改 if 语句的按钮

c++ - boost::odeint 在成员类中调用

c++ - DLL函数调用问题如何解决