ICC думает Boost :: FileSystem3 :: Path - неполный типC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ICC думает Boost :: FileSystem3 :: Path - неполный тип

Сообщение Anonymous »

Я пытаюсь создать программу под названием Mitsuba с ICC. Но когда я компилируюсь, я получаю много ошибок, говоря, что тип является неполным. Вот несколько примеров: < /p>

icc -o build/release/libcore/thread.os -c -O3 -Wall -g -pipe -O3 -ipo -no-prec-div -xSSE3 -fp-model fast=2 -openmp -mfpmath=sse -march=nocona -fno-math-errno -fomit-frame-pointer -DMTS_DEBUG -DSINGLE_PRECISION -DSPECTRUM_SAMPLES=3 -DMTS_SSE -DMTS_HAS_COHERENT_RT -fopenmp -fvisibility=hidden -std=c++0x -wd2928 -Qoption,cpp,--rvalue_ctor_is_not_copy_ctor -fPIC -DMTS_BUILD_MODULE=MTS_MODULE_CORE -DMTS_HAS_LIBPNG=1 -DMTS_HAS_LIBJPEG=1 -I/usr/include/OpenEXR -I/u/i/n/ingrassi/eigen -I/usr/include/OpenEXR -Iinclude src/libcore/thread.cpp
/usr/include/c++/4.4.7/bits/stl_deque.h(450): error: incomplete type is not allowed
_M_impl._Tp_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
^
detected during:
instantiation of "void std::_Deque_base::_M_deallocate_node(_Tp *) [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 553
instantiation of "void std::_Deque_base::_M_destroy_nodes(_Tp **, _Tp **) [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 476
instantiation of "std::_Deque_base::~_Deque_base() [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 790
instantiation of "std::deque::~deque() [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 97 of "include/mitsuba/core/fresolver.h"

/usr/include/c++/4.4.7/bits/stl_deque.h(1652): error: an incomplete class type is not allowed
if (!__has_trivial_destructor(value_type))
^
detected during:
instantiation of "void std::deque::_M_destroy_data(std::deque::iterator, std::deque::iterator, const std::allocator &) [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 790
instantiation of "std::deque::~deque() [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 97 of "include/mitsuba/core/fresolver.h"

/usr/include/c++/4.4.7/bits/stl_deque.h(666): error: incomplete type is not allowed
{ return __deque_buf_size(sizeof(_Tp)); }
^
detected during:
instantiation of "size_t={unsigned long} std::deque::_S_buffer_size() [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 728 of "/usr/include/c++/4.4.7/bits/deque.tcc"
instantiation of "void std::deque::_M_destroy_data_aux(std::deque::iterator, std::deque::iterator) [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 1653
instantiation of "void std::deque::_M_destroy_data(std::deque::iterator, std::deque::iterator, const std::allocator &) [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 790
instantiation of "std::deque::~deque() [with _Tp=boost::filesystem3::path, _Alloc=std::allocator]" at line 97 of "include/mitsuba/core/fresolver.h"
< /code>

Я несколько новичок в шаблонах, но я думаю, что они говорят, что тип Boost :: fileystem3 :: Неполный путь. После проверки Boost /FileSystem /path.hpp, это не так.#include
#include
#include
#include

...

class MTS_EXPORT_CORE FileResolver : public Object {
...
private:
std::deque m_paths;
}
< /code>

Почему компиляция терпит неудачу, и как это исправить? < /p>

Подробнее здесь: https://stackoverflow.com/questions/273 ... plete-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»