C++ - if语句简化

Chr*_*ris 2 c++ if-statement

可能重复:
如何检查多个变量是否等于相同的值?

有没有办法写这个:

    if ((var1==var2) && (var2==var3) && (var3==var4) ...)
Run Code Online (Sandbox Code Playgroud)

这样的事情

    if (var1==var2==var3==var4 ...)
Run Code Online (Sandbox Code Playgroud)

Ben*_*ley 5

在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';
}
Run Code Online (Sandbox Code Playgroud)

编辑:我想史蒂夫·杰索普对链接复制此相同的想法在这里