c++.stlsoft - Ambiguous Symbol size_t
- Cláudio Albuquerque (17/17) Jan 04 2007 Hi Mathew,
Hi Mathew, I'm using stlsoft 1.9.1-beta39 and Visual C++ 8.0 to do a simple thing. So I did something like: #include "stlsoft/conversion/explicit_cast.hpp" namespace MyNamespace { using namespace stlsoft; .... void Func (void) { size_t s; ptrdiff_t x; ..... } And I get and error ambiguous symbol for 'size_t' : 'ptrdiff_t'. Can you help me with this? Thanks Cláudio Albuquerque
Jan 04 2007
Hi Claudio
Firstly, the problem has nothing to do with VC++ 8.
The problem here is that stlsoft defines size_t and ptrdiff_t in the stlsoft
namespace, and by introducing everything from STLSoft into MyNameSpace,
you're getting a conflict.
(The reason they're there is largely historical, for widest possible
compatibility with older compilers.)
The fix would be to either:
- delete the using directive, and instead use using declarations, e.g.
using stlsoft::explicit_cast;
- explicitly qualify the size_t and ptrdiff_t types when you use them,
e.g.
void Func (void)
{
::size_t s;
::ptrdiff_t x;
.....
}
The reason I've never run into the problem that you have is that I (almost)
*never* use using directives. However, other people do, and it's a part of
the language, so I think a remedy is in order.
Although it'll be a few days, I think I will address this before the next
(and possibly final) beta. Watch for an announcement post here.
HTH
Matthew
P.S. May I ask how you heard about STLSoft? :-)
"Cláudio Albuquerque" <0318222801 netcabo.pt> wrote in message
news:enjnqd$2qpj$1 digitaldaemon.com...
Hi Mathew,
I'm using stlsoft 1.9.1-beta39 and Visual C++ 8.0 to do a simple thing.
So I did something like:
#include "stlsoft/conversion/explicit_cast.hpp"
namespace MyNamespace {
using namespace stlsoft;
....
void Func (void)
{
size_t s;
ptrdiff_t x;
.....
}
And I get and error ambiguous symbol for 'size_t' : 'ptrdiff_t'.
Can you help me with this?
Thanks
Cláudio Albuquerque
Jan 04 2007
Although it'll be a few days, I think I will address this before the next (and possibly final) beta. Watch for an announcement post here.This has now been done. I need to run tests, and there're some other component fixes to be done, but this change'll definitely be in the next beta. Cheers Matthew
Jan 04 2007








"Matthew" <matthew hat.stlsoft.dot.org>