我試圖用__m128i與GCC緩存對齊矢量的值類型,我發現了以下錯誤:tbb :: cache_aligned_allocator:使用__m128i獲取「請求成員...非類類型的成員」。用戶錯誤或錯誤?
/usr/include/tbb/cache_aligned_allocator.h:105:32: error: request for member ‘~tbb::cache_aligned_allocator<__vector(2) long long int>::value_type’ in ‘* p’, which is of non-class type ‘tbb::cache_aligned_allocator<__vector(2) long long int>::value_type {aka __vector(2) long long int}’
編譯器的痕跡,它下面的行TBB/cache_aligned_allocator .H:
void destroy(pointer p) {p->~value_type();}
這裏是觸發編譯器錯誤代碼:
#include <vector>
#include <emmintrin.h>
#include <tbb/cache_aligned_allocator.h>
int main()
{
std::vector<int, tbb::cache_aligned_allocator<int> > success;
std::vector<__m128i, tbb::cache_aligned_allocator<__m128i> > failure;
return 0;
}
據Debian的版本,我的GCC的版本是4.6.1-2,並我的TBB版本是3.0 + r147-1。 這是線程構建模塊中的錯誤,還是我濫用了一些東西?
請耐心等待...我試圖編輯以獲得正確的格式。 – 2011-12-16 03:20:56
謝謝!我最終也在同一時間進行了與您一樣的編輯。 :D – 2011-12-16 03:26:27