metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2007-12-25 11:41 pm

gcc и Visual Studio

А не знает ли многоуважаемый All, нет ли такого тонкого различия между gcc и Visual Studio в обработке namespace:

using namespace SpatialIndex::TPRTree;
и дальше идет обращение к типу, объявленному в пространстве имен SpatialIndex.
Изначально код компилировался gcc и подобный стиль обращения в нем везде. За отсутствием gcc под руками проверить, как он компилировался, не могу. Visual же на это ругается, что не знает такого типа. Поэтому приходится записывать так:
namespace SpatialIndex{
namespace TPRTree{

}
}
, после чего все компилируется.

[identity profile] kkirsanov.livejournal.com 2007-12-25 10:16 pm (UTC)(link)
gcc 4.2

namespace N1{
class Z1{};
namespace N2{
class Z2{};
}
}
using namespace N1::N2;
Z1 z; // 'Z1' does not name a type

[identity profile] kkirsanov.livejournal.com 2007-12-25 10:37 pm (UTC)(link)
А почему бы на записать:

using namespace SpatialIndex;
using namespace SpatialIndex::TPRTree;

?

[identity profile] qehgt.livejournal.com 2007-12-26 05:48 am (UTC)(link)
А какой версии MSVC-то?

Вполне возможно, что Koenig-lookup у кого-то из них работает неправильно.