Replaced GCC/VS2010 hacks with code that should compile on both platforms.

This commit is contained in:
David Williams 2011-07-31 08:58:52 +01:00
parent 2e27e957a7
commit 53ae3de413
4 changed files with 16 additions and 29 deletions

View File

@ -145,11 +145,8 @@ namespace PolyVox
class LargeVolume : public Volume<VoxelType> class LargeVolume : public Volume<VoxelType>
{ {
public: public:
#if defined(_MSC_VER) //DIRTY HACK!!! typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences. See http://goo.gl/qu1wn
class Sampler : public Volume<VoxelType>::Sampler< LargeVolume<VoxelType> > class Sampler : public VolumeOfVoxelType::template Sampler< LargeVolume<VoxelType> >
#else
class Sampler : public Volume<VoxelType>::template Sampler< LargeVolume<VoxelType> >
#endif
{ {
public: public:
Sampler(LargeVolume<VoxelType>* volume); Sampler(LargeVolume<VoxelType>* volume);

View File

@ -38,11 +38,8 @@ namespace PolyVox
{ {
public: public:
#ifndef SWIG #ifndef SWIG
#if defined(_MSC_VER) //DIRTY HACK!!! typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences. See http://goo.gl/qu1wn
class Sampler : public Volume<VoxelType>::Sampler< RawVolume<VoxelType> > class Sampler : public VolumeOfVoxelType::template Sampler< RawVolume<VoxelType> >
#else
class Sampler : public Volume<VoxelType>::template Sampler< RawVolume<VoxelType> >
#endif
{ {
public: public:
Sampler(RawVolume<VoxelType>* volume); Sampler(RawVolume<VoxelType>* volume);

View File

@ -60,11 +60,8 @@ namespace PolyVox
uint8_t m_uSideLengthPower; uint8_t m_uSideLengthPower;
}; };
#if defined(_MSC_VER) //DIRTY HACK!!! typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences. See http://goo.gl/qu1wn
class Sampler : public Volume<VoxelType>::Sampler< SimpleVolume<VoxelType> > class Sampler : public VolumeOfVoxelType::template Sampler< SimpleVolume<VoxelType> >
#else
class Sampler : public Volume<VoxelType>::template Sampler< SimpleVolume<VoxelType> >
#endif
{ {
public: public:
Sampler(SimpleVolume<VoxelType>* volume); Sampler(SimpleVolume<VoxelType>* volume);

View File

@ -37,21 +37,17 @@ template <typename VoxelType>
class VolumeSubclass : public Volume<VoxelType> class VolumeSubclass : public Volume<VoxelType>
{ {
public: public:
typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences. See http://goo.gl/qu1wn
#if defined(_MSC_VER) //DIRTY HACK!!! class Sampler : public VolumeOfVoxelType::template Sampler< VolumeSubclass<VoxelType> >
class Sampler : public Volume<VoxelType>::Sampler< VolumeSubclass<VoxelType> > {
#else public:
class Sampler : public Volume<VoxelType>::template Sampler< VolumeSubclass<VoxelType> > Sampler(VolumeSubclass<VoxelType>* volume)
#endif :Volume<VoxelType>::template Sampler< VolumeSubclass<VoxelType> >(volume)
{ {
public: this->mVolume = volume;
Sampler(VolumeSubclass<VoxelType>* volume) }
:Volume<VoxelType>::template Sampler< VolumeSubclass<VoxelType> >(volume) //~Sampler();
{ };
this->mVolume = volume;
}
//~Sampler();
};
/// Constructor for creating a fixed size volume. /// Constructor for creating a fixed size volume.
VolumeSubclass(const Region& regValid) VolumeSubclass(const Region& regValid)