Не могу использовать 'tbb / atomic.h' с компилятором Intel

0

Я не могу получить доступ к каким-либо функциям атомных типов TBB (fetch/load/etc.). Когда я смотрю на 'tbb/atomic.h', в каждом экземпляре макроса есть ошибки: '__TBB_DECL_ATOMIC (...)'

error: 'pure specifier (= 0) разрешен только для виртуальных функций'

Напротив, все можно получить и компилировать с использованием компилятора MSVC.

Это использует последнюю версию компилятора Intel C++, последнюю версию TBB, 64-битную ОС, 64-битную сборку. Даже глядя на макрокод, я не могу сказать, откуда это происходит. Я пропускаю флаг компилятора или что-то еще?

#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;}   \
    };
  • 0
    Что по default ? Это 0 в одном компиляторе, а не в другом?
  • 0
    Я думаю, это ключевое слово C ++ 11, но у меня включен флаг C ++ 11 ...
Теги:
atomic
intel
tbb

1 ответ

1

Нашел вопрос. Компилятор компилирует его просто отлично, но среда (VS2012) не распознает С++ 11, поэтому я не получаю Intellisense, и я получаю ложные ошибки squiggles.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню