Boost logo

Boost :

From: Dean Michael Berris (mikhailberis_at_[hidden])
Date: 2007-07-06 03:00:11


Hi Everyone,

I've encountered a problem with MSVC which I have no idea how to go
around with regards to using extern placeholders for template method
type deductions. Let me give an example:

template <class T> struct some_type { };

struct a_type { } ;

extern a_type placeholder ;

template <class T>
some_type<T> method(T) { return some_type<T>(); };

// ...
{
  method(placeholder);
}

The code works (compiles fine) in GCC -- it doesn't bother looking for
the placeholder during link time. However MSVC 8 throws a fit and
doesn't want to link the executable because it keeps looking for the
implementation of placeholder -- where the code obviously doesn't
require linking to it in any way, except for the purposes of type
deduction in the template method.

Am I encountering an MSVC bug? Is there a better way of going about this?

Insights would be most appreciated.

Thanks in advance!

-- 
Dean Michael C. Berris
http://cplusplus-soup.blogspot.com/
mikhailberis AT gmail DOT com
+63 928 7291459

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk