G
Gabriel Becedillas
During the last weeks I've trying to port boost:ython 1.23 to work
with Visual C++ 7.1. I had some headaches while doing so because VC++
7.1 supports Koenig lookup and previous ones doesn't support it (and
aparently boost:ython 1.23 was not written with Koenig support in
mind).
While doing so I faced an ICF.. which I can reproduce with the code
that follows. Does anybode know if this is fixed somehow ?.
I'm not sure if the call to some_friend inside
bang_bang_icf_shot_me_down is ok or not.. and thats not what I want to
find out right now. The ICF I'm getting is inside a piece of code that
is so much bigger. This is just a simplified example of what I think
is trigering the ICF.
Thanks.
namespace pindonguita
{
struct lookup_helper
{};
class A
{
public:
friend void some_friend(lookup_helper)
{}
};
template <typename T>
void bang_bang_icf_shot_me_down(lookup_helper a_T)
{::some_friend(pindonguita::lookup_helper());}
}
int main()
{
pindonguita::A int_conv;
some_friend(pindonguita::lookup_helper());
pindonguita::bang_bang_icf_shot_me_down<int>(pindonguita::lookup_helper());
return 0;
}
with Visual C++ 7.1. I had some headaches while doing so because VC++
7.1 supports Koenig lookup and previous ones doesn't support it (and
aparently boost:ython 1.23 was not written with Koenig support in
mind).
While doing so I faced an ICF.. which I can reproduce with the code
that follows. Does anybode know if this is fixed somehow ?.
I'm not sure if the call to some_friend inside
bang_bang_icf_shot_me_down is ok or not.. and thats not what I want to
find out right now. The ICF I'm getting is inside a piece of code that
is so much bigger. This is just a simplified example of what I think
is trigering the ICF.
Thanks.
namespace pindonguita
{
struct lookup_helper
{};
class A
{
public:
friend void some_friend(lookup_helper)
{}
};
template <typename T>
void bang_bang_icf_shot_me_down(lookup_helper a_T)
{::some_friend(pindonguita::lookup_helper());}
}
int main()
{
pindonguita::A int_conv;
some_friend(pindonguita::lookup_helper());
pindonguita::bang_bang_icf_shot_me_down<int>(pindonguita::lookup_helper());
return 0;
}