aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odb/polymorphic-info.hxx4
-rw-r--r--odb/polymorphic-map.txx8
2 files changed, 9 insertions, 3 deletions
diff --git a/odb/polymorphic-info.hxx b/odb/polymorphic-info.hxx
index eb444ca..abed648 100644
--- a/odb/polymorphic-info.hxx
+++ b/odb/polymorphic-info.hxx
@@ -39,8 +39,10 @@ namespace odb
template <typename R>
struct polymorphic_concrete_info: polymorphic_abstract_info<R>
{
+ // Have to use access::object_traits directly because of VC10.
+ //
typedef R root_type;
- typedef object_traits<root_type> root_traits;
+ typedef access::object_traits<root_type> root_traits;
typedef typename root_traits::id_type id_type;
typedef typename root_traits::pointer_type pointer_type;
typedef typename root_traits::discriminator_type discriminator_type;
diff --git a/odb/polymorphic-map.txx b/odb/polymorphic-map.txx
index 7b1b81a..d7b6e36 100644
--- a/odb/polymorphic-map.txx
+++ b/odb/polymorphic-map.txx
@@ -43,7 +43,9 @@ namespace odb
void polymorphic_entry_impl<R>::
insert (const info_type& i)
{
- polymorphic_map<root_type>*& pm (root_traits::map);
+ // VC10 cannot grok constructor call syntax here.
+ //
+ polymorphic_map<root_type>*& pm = root_traits::map;
if (pm == 0)
pm = new polymorphic_map<root_type>;
@@ -58,7 +60,9 @@ namespace odb
void polymorphic_entry_impl<R>::
erase (const info_type& i)
{
- polymorphic_map<root_type>*& pm (root_traits::map);
+ // VC10 cannot grok constructor call syntax here.
+ //
+ polymorphic_map<root_type>*& pm = root_traits::map;
pm->discriminator_map_.erase (&i.discriminator);
pm->type_map_.erase (&i.type);