14 #ifndef PUGIXML_VERSION
16 # define PUGIXML_VERSION 190
22 #ifndef HEADER_PUGIXML_HPP
23 #define HEADER_PUGIXML_HPP
29 #if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS)
34 #ifndef PUGIXML_NO_STL
41 #ifndef PUGIXML_DEPRECATED
42 # if defined(__GNUC__)
43 # define PUGIXML_DEPRECATED __attribute__((deprecated))
44 # elif defined(_MSC_VER) && _MSC_VER >= 1300
45 # define PUGIXML_DEPRECATED __declspec(deprecated)
47 # define PUGIXML_DEPRECATED
58 # define PUGIXML_CLASS PUGIXML_API
62 #ifndef PUGIXML_FUNCTION
63 # define PUGIXML_FUNCTION PUGIXML_API
67 #ifndef PUGIXML_HAS_LONG_LONG
68 # if __cplusplus >= 201103
69 # define PUGIXML_HAS_LONG_LONG
70 # elif defined(_MSC_VER) && _MSC_VER >= 1400
71 # define PUGIXML_HAS_LONG_LONG
76 #ifndef PUGIXML_HAS_MOVE
77 # if __cplusplus >= 201103
78 # define PUGIXML_HAS_MOVE
79 # elif defined(_MSC_VER) && _MSC_VER >= 1600
80 # define PUGIXML_HAS_MOVE
85 #ifndef PUGIXML_NOEXCEPT
86 # if __cplusplus >= 201103
87 # define PUGIXML_NOEXCEPT noexcept
88 # elif defined(_MSC_VER) && _MSC_VER >= 1900
89 # define PUGIXML_NOEXCEPT noexcept
91 # define PUGIXML_NOEXCEPT
96 #ifdef PUGIXML_COMPACT
97 # define PUGIXML_NOEXCEPT_IF_NOT_COMPACT
99 # define PUGIXML_NOEXCEPT_IF_NOT_COMPACT PUGIXML_NOEXCEPT
103 #ifndef PUGIXML_OVERRIDE
104 # if __cplusplus >= 201103
105 # define PUGIXML_OVERRIDE override
106 # elif defined(_MSC_VER) && _MSC_VER >= 1700
107 # define PUGIXML_OVERRIDE override
109 # define PUGIXML_OVERRIDE
114 #ifdef PUGIXML_WCHAR_MODE
115 # define PUGIXML_TEXT(t) L ## t
116 # define PUGIXML_CHAR wchar_t
118 # define PUGIXML_TEXT(t) t
119 # define PUGIXML_CHAR char
127 #ifndef PUGIXML_NO_STL
264 struct xml_attribute_struct;
265 struct xml_node_struct;
267 class xml_node_iterator;
268 class xml_attribute_iterator;
269 class xml_named_node_iterator;
271 class xml_tree_walker;
273 struct xml_parse_result;
279 #ifndef PUGIXML_NO_XPATH
281 class xpath_node_set;
283 class xpath_variable_set;
298 It
end()
const {
return _end; }
311 virtual void write(
const void*
data,
size_t size) = 0;
327 #ifndef PUGIXML_NO_STL
339 std::basic_ostream<char, std::char_traits<char> >* narrow_stream;
340 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >* wide_stream;
363 operator unspecified_bool_type()
const;
387 int as_int(
int def = 0)
const;
388 unsigned int as_uint(
unsigned int def = 0)
const;
389 double as_double(
double def = 0)
const;
390 float as_float(
float def = 0)
const;
392 #ifdef PUGIXML_HAS_LONG_LONG
393 long long as_llong(
long long def = 0)
const;
394 unsigned long long as_ullong(
unsigned long long def = 0)
const;
398 bool as_bool(
bool def =
false)
const;
401 bool set_name(
const char_t* rhs);
402 bool set_value(
const char_t* rhs);
405 bool set_value(
int rhs);
406 bool set_value(
unsigned int rhs);
407 bool set_value(
long rhs);
408 bool set_value(
unsigned long rhs);
409 bool set_value(
double rhs);
410 bool set_value(
float rhs);
411 bool set_value(
bool rhs);
413 #ifdef PUGIXML_HAS_LONG_LONG
414 bool set_value(
long long rhs);
415 bool set_value(
unsigned long long rhs);
428 #ifdef PUGIXML_HAS_LONG_LONG
470 operator unspecified_bool_type()
const;
527 const char_t* child_value()
const;
533 bool set_name(
const char_t* rhs);
534 bool set_value(
const char_t* rhs);
618 if (pred(cur))
return cur;
637 #ifndef PUGIXML_NO_STL
648 #ifndef PUGIXML_NO_XPATH
666 #ifndef PUGIXML_NO_STL
690 ptrdiff_t offset_debug()
const;
724 operator unspecified_bool_type()
const;
733 const char_t*
get()
const;
739 int as_int(
int def = 0)
const;
740 unsigned int as_uint(
unsigned int def = 0)
const;
741 double as_double(
double def = 0)
const;
742 float as_float(
float def = 0)
const;
744 #ifdef PUGIXML_HAS_LONG_LONG
745 long long as_llong(
long long def = 0)
const;
746 unsigned long long as_ullong(
unsigned long long def = 0)
const;
750 bool as_bool(
bool def =
false)
const;
753 bool set(
const char_t* rhs);
757 bool set(
unsigned int rhs);
759 bool set(
unsigned long rhs);
760 bool set(
double rhs);
764 #ifdef PUGIXML_HAS_LONG_LONG
765 bool set(
long long rhs);
766 bool set(
unsigned long long rhs);
779 #ifdef PUGIXML_HAS_LONG_LONG
812 #ifndef PUGIXML_NO_STL
854 #ifndef PUGIXML_NO_STL
890 #ifndef PUGIXML_NO_STL
941 virtual bool for_each(
xml_node& node) = 0;
990 operator bool()
const;
993 const char* description()
const;
1019 #ifdef PUGIXML_HAS_MOVE
1031 #ifndef PUGIXML_NO_STL
1061 #ifndef PUGIXML_NO_STL
1075 #ifndef PUGIXML_NO_XPATH
1099 operator bool()
const;
1102 const char* description()
const;
1128 bool get_boolean()
const;
1129 double get_number()
const;
1130 const char_t* get_string()
const;
1134 bool set(
bool value);
1135 bool set(
double value);
1163 #ifdef PUGIXML_HAS_MOVE
1174 bool set(
const char_t* name,
double value);
1194 xpath_query&
operator=(
const xpath_query&);
1207 #ifdef PUGIXML_HAS_MOVE
1222 double evaluate_number(
const xpath_node& n)
const;
1224 #ifndef PUGIXML_NO_STL
1251 operator unspecified_bool_type()
const;
1257 #ifndef PUGIXML_NO_EXCEPTIONS
1301 operator unspecified_bool_type()
const;
1348 #ifdef PUGIXML_HAS_MOVE
1358 size_t size()
const;
1389 #ifndef PUGIXML_NO_STL
1400 typedef void* (*allocation_function)(
size_t size);
1413 #if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC))
1423 #if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC)
1437 #if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE)
1438 # define PUGIXML_SOURCE "pugixml.cpp"
1439 # include PUGIXML_SOURCE
xml_node_iterator iterator
OCIOEXPORT ConstColorSpaceSetRcPtr operator&&(const ConstColorSpaceSetRcPtr &lcss, const ConstColorSpaceSetRcPtr &rcss)
Perform the intersection of two sets.
std::bidirectional_iterator_tag iterator_category
ptrdiff_t difference_type
xml_attribute find_attribute(Predicate pred) const
xml_object_range(It b, It e)
void append_attribute(xml_attribute_struct *attr, xml_node_struct *node)
void remove_attribute(xml_attribute_struct *attr, xml_node_struct *node)
GLsizei const GLfloat * value
xml_node find_child(Predicate pred) const
GLsizei const GLchar *const * path
std::bidirectional_iterator_tag iterator_category
GLboolean GLboolean GLboolean GLboolean a
xml_node first_child() const
void reverse(I begin, I end)
void insert_attribute_before(xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
xml_attribute next_attribute() const
**But if you need a result
OIIO_FORCEINLINE vbool4 operator>=(const vint4 &a, const vint4 &b)
xml_attribute & reference
ptrdiff_t difference_type
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
OIIO_FORCEINLINE vbool4 operator>(const vint4 &a, const vint4 &b)
OIIO_FORCEINLINE vbool4 operator<=(const vint4 &a, const vint4 &b)
OCIOEXPORT ConstColorSpaceSetRcPtr operator||(const ConstColorSpaceSetRcPtr &lcss, const ConstColorSpaceSetRcPtr &rcss)
Perform the union of two sets.
std::bidirectional_iterator_tag iterator_category
const xpath_node * iterator
xml_node next_sibling() const
bool operator<(const GU_TetrahedronFacet &a, const GU_TetrahedronFacet &b)
IMATH_HOSTDEVICE constexpr Color4< T > operator*(S a, const Color4< T > &v) IMATH_NOEXCEPT
Reverse multiplication: S * Color4.
xml_node find_node(Predicate pred) const
GLuint const GLchar * name
GLboolean GLboolean GLboolean b
void insert_attribute_after(xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
ptrdiff_t difference_type
GLint GLint GLsizei GLsizei GLsizei depth
Usd_Term operator!(Usd_PrimFlags flag)
xml_attribute_iterator attribute_iterator
LeafData & operator=(const LeafData &)=delete
OIIO_API bool attribute(string_view name, TypeDesc type, const void *val)
GU_API ComputeHierarchyResult traverse(const GU_Detail *gdp, GA_OffsetArray &roots, GA_OffsetArray &nodes, GA_OffsetArray &parents, UT_Map< GA_Offset, GA_OffsetArray > *children=nullptr)
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
bool operator!=(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void prepend_attribute(xml_attribute_struct *attr, xml_node_struct *node)
const xpath_node * const_iterator
size_t hash_value(const CH_ChannelRef &ref)
FMT_INLINE void print(format_string< T...> fmt, T &&...args)
void sort(I begin, I end, const Pred &pred)
PcpNodeRef_ChildrenIterator begin(const PcpNodeRef::child_const_range &r)
Support for range-based for loops for PcpNodeRef children ranges.