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>
{
public:
#if defined(_MSC_VER) //DIRTY HACK!!!
class Sampler : public Volume<VoxelType>::Sampler< LargeVolume<VoxelType> >
#else
class Sampler : public Volume<VoxelType>::template Sampler< LargeVolume<VoxelType> >
#endif
typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences. See http://goo.gl/qu1wn
class Sampler : public VolumeOfVoxelType::template Sampler< LargeVolume<VoxelType> >
{
public:
Sampler(LargeVolume<VoxelType>* volume);

View File

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

View File

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

View File

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