假设我有一个存储在 bootstrap 中的服务器名称列表,我想一次与它们联系一次,直到成功响应为止。我正在考虑通过以下方式使用STL的find_if算法:
find_if(serverNames.begin(), serverNames.end(), ContactServer());
其中ContactServer是谓词功能对象。
一方面,存在一个问题,因为谓词将不会总是针对相同的服务器名称返回相同的结果(由于服务器停机,网络问题等)。但是,无论使用哪个谓词拷贝(即谓词都没有真实状态),都将返回相同的结果,因此在这种情况下,保持状态谓词的原始问题并不重要。
你怎么说?
最佳答案
我想我会去的。
我唯一担心的是它的可读性(以及可维护性)。对我来说,它读的是“找到我可以联系的第一台服务器”之类的东西,这很有意义。
您可能需要重命名ContactServer
来表明它是一个谓词; CanContactServer
? (但是后来人们会提示隐藏的副作用。嗯...)