Reputation: 93
I am unable to access any functions of TBB's atomic types (fetch/load/etc.). When I look at 'tbb/atomic.h' there are errors at every instance of the macro: '__TBB_DECL_ATOMIC( ... )'
error: 'pure specifier ( = 0 ) allowed only on virtual functions'
On the contrary, everything can be accessed and compiles fine using the MSVC compiler.
This is using the latest version of the Intel C++ compiler, latest version of TBB, 64-bit OS, 64-bit build. Even looking at the macro's code I can't tell where this is coming from. Am I missing a compiler flag or something?
#define __TBB_DECL_ATOMIC(T) \
template<> struct atomic<T>: internal::atomic_impl_with_arithmetic<T,T,char> { \
atomic() = default; \
constexpr atomic(T arg): internal::atomic_impl_with_arithmetic<T,T,char>(arg) {} \
\
T operator=( T rhs ) {return store_with_release(rhs);} \
atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;} \
};
Upvotes: 0
Views: 543
Reputation: 93
Found the issue. The compiler compiles it just fine, but the environment (VS2012) isn't recognizing the C++11 so I'm not getting Intellisense and I am getting false error squiggles.
Upvotes: 1