diff --git a/alib2common/src/container/ObjectsTuple.h b/alib2common/src/container/ObjectsTuple.h index ef9289e1dc09757073dba1aac85c5f0854625faa..7118b7a958de7f7676c75c04186517400fdda3c3 100644 --- a/alib2common/src/container/ObjectsTuple.h +++ b/alib2common/src/container/ObjectsTuple.h @@ -38,13 +38,17 @@ public: static void compose ( std::deque < sax::Token > & out, const std::tuple < Ts ... > & input ); }; + + template < typename ... Ts > std::tuple < Ts ... > ObjectsTuple::parseRaw ( std::deque < sax::Token >::iterator & input ) { sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, ObjectsTuple::getXmlTagName() ); - return std::tuple < Ts ... > { alib::xmlApi < Ts >::parse ( input ) ... }; // NOTE buggy in gcc < 4.9.1 + std::tuple < Ts ... > res { alib::xmlApi < Ts >::parse ( input ) ... }; // NOTE buggy in gcc < 4.9.1 sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, ObjectsTuple::getXmlTagName() ); + + return res; } template < class ... Ts, size_t ... I >