/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param xmlObject the object to examine
*/
bool operator()(const XMLObject* xmlObject) const {
- const QName* xsitype = xmlObject ? xmlObject->getSchemaType() : NULL;
+ const QName* xsitype = xmlObject ? xmlObject->getSchemaType() : nullptr;
return xsitype ? (*xsitype == m_q) : false;
}
*
* @param c read-only container of pointer-based objects
* @param p a predicate function
- * @return the first object in the container matching the predicate, or NULL
+ * @return the first object in the container matching the predicate, or nullptr
*/
template<typename Container, typename Predicate>
- typename Container::value_type find_if(const typename Container& c, const typename Predicate& p) {
- Container::const_iterator i = std::find_if(c.begin(), c.end(), p);
- return (i!=c.end()) ? *i : NULL;
+ typename Container::value_type find_if(const Container& c, const Predicate& p) {
+ typename Container::const_iterator i = std::find_if(c.begin(), c.end(), p);
+ return (i!=c.end()) ? *i : nullptr;
}
-
+
+ /**
+ * Template algorithm returns first pointer element from a container that matches a predicate.
+ *
+ * @param c read-only container of pointer-based objects
+ * @param p a predicate function
+ * @return the first object in the container matching the predicate, or nullptr
+ */
+ template<typename Container, typename Predicate>
+ typename Container::value_type find_if(Container& c, const Predicate& p) {
+ typename Container::iterator i = std::find_if(c.begin(), c.end(), p);
+ return (i!=c.end()) ? *i : nullptr;
+ }
+
};
#endif /* __xmltooling_predicates_h__ */