Hi,

I got an error using soci with clang (version 3.1 (branches/release_31 156809)). In my opinion core/type-holder.h does not follow C++ standard.


According to C++03 - 14.2/4,

"When the name of a member template specialization appears after . or -> in a postfix-expression, or after nested-name-specifier in a qualified-id, and the postfix-expression or qualified-id explicitly depends on a template-parameter (14.6.2), the member template name must be prefixed by the keyword template. Otherwise the name is assumed to name a non-template."

Attached patch solves the problem for me.

Regards,
   Olaf
--- core/type-holder.h~	2012-05-16 11:49:50.854141418 +0200
+++ core/type-holder.h	2012-05-16 11:50:00.917141686 +0200
@@ -33,7 +33,7 @@ public:
         type_holder<T>* p = dynamic_cast<type_holder<T> *>(this);
         if (p)
         {
-            return p->value<T>();
+            return p->template value<T>();
         }
         else
         {
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users

Reply via email to