aboutsummaryrefslogtreecommitdiff
path: root/xml
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-04-29 11:04:19 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-04-29 11:04:19 +0200
commit818bedc799073966a4c56fd83ab1df358b9e9c24 (patch)
tree5d69822c65b645e2ec57506c15b9dee0d188991b /xml
parent4e5dc8da6c8ef9ead4fcc6acbbade0cd6bfc61ca (diff)
Add value<T> version, analogous to attribute<T>
Diffstat (limited to 'xml')
-rw-r--r--xml/parser.hxx1
-rw-r--r--xml/parser.ixx7
2 files changed, 8 insertions, 0 deletions
diff --git a/xml/parser.hxx b/xml/parser.hxx
index f3a2e34..b9b5d4c 100644
--- a/xml/parser.hxx
+++ b/xml/parser.hxx
@@ -208,6 +208,7 @@ namespace xml
const std::string& prefix () const {return pqname_->prefix ();}
const std::string& value () const {return *pvalue_;}
+ template <typename T> T value () const;
unsigned long long line () const {return line_;}
unsigned long long column () const {return column_;}
diff --git a/xml/parser.ixx b/xml/parser.ixx
index adb8751..ac27b46 100644
--- a/xml/parser.ixx
+++ b/xml/parser.ixx
@@ -6,6 +6,13 @@
namespace xml
{
+ template <typename T>
+ inline T parser::
+ value () const
+ {
+ return value_traits<T>::parse (value (), *this);
+ }
+
inline const std::string& parser::
attribute (const std::string& n) const
{