richgel999 / crunch

Advanced DXTc texture compression library
143 stars 17 forks source link

Neither LLVM GCC 4.2 nor Apple LLVM 4.1 support __is_pod(T) #15

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile crnlib using GCC 4.2 or Apple LLVM 4.1 (the compilers included with 
XCode 4.5.2)

What is the expected output? What do you see instead?
Ideally it would compile without errors, but instead I see errors in 
crn_vector.h saying "'T' does not refer to a value" using Apple LLVM 4.1, or 
"There are no arguments to '__is_pod' that depend on a template parameter, so a 
declaration of '__is_pod' must be available"

What version of the product are you using? On what operating system?
I am using Crunch SVN revision 319 on Mac OS 10.7.5

Please provide any additional information below.
It sounds like boost::type_traits wraps __is_pod in some compiler checks to 
find a compatible version, though you probably don't want to add a boost 
dependency.

Original issue reported on code.google.com by da...@wolfire.com on 28 Jan 2013 at 8:39

GoogleCodeExporter commented 9 years ago
Replacing __is_pod with boost::is_pod<T>::value does seem to fix this issue.

Original comment by da...@wolfire.com on 29 Jan 2013 at 5:40

GoogleCodeExporter commented 9 years ago
Similarly, CRNLIB_ASSUME uses __COUNTER__ which is not supported on GCC 4.2, 
but is supported by Apple LLVM 4.1.

Original comment by da...@wolfire.com on 29 Jan 2013 at 7:57