Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IntelComposerXE 12.1.0 и Boost 1.47.0 совместимы? 
:(
    Опции темы
phprus
Дата 12.9.2011, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



Доброго времени суток!

Скажите пожалуйста, кто-либо пытался пользоваться связкой icpc 12.1.0 (2011.6.233) и Boost 1.47.0? И если да, то каковы результаты эксперимента?

У меня при попытке использовать эту версию компилятора возникает просто огромное количество ошибок компиляции, вплоть до того, что код:
Код

#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
int main(int argc, char *argv[])
{
        return 0;
}

не компилируется, а код:
Код

#include <boost/shared_ptr.hpp>
#include <boost/asio.hpp>
int main(int argc, char *argv[])
{
        return 0;
}

компилируется (но в большом проекте искать такие перестановки умереть можно).
Операционная система openSUSE 11.4, GCC 4.5.1, платформа x86-64.

Во всем интернете пока нашел только обсуждение из одного сообщения в рассылке boost-users: http://lists.boost.org/boost-users/2011/09/70619.php
PM MAIL WWW ICQ   Вверх
Artemon
Дата 12.9.2011, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Какие ошибки ?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
phprus
Дата 12.9.2011, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



Artemon
Разные и много.
Вплоть до того, что при препроцессинге с некоторыми именами функций творилось нечто непонятное (судя по выводу -E). Например в boost/shared_ptr/shared_ptr.hpp "atomic_is_lock_free( shared_ptr<T> const * /*p*/ )" заменилось на "true" сломав тем самым все остальное.

Завтра попробую поставить компилятор на чистую виртуалку и приведу более точные сообщения об ошибках, так как на рабочей машине я уже все вернул как было.

Update:
Оказывается еще не закрыл консоль в которой компилировал код и вот пример ошибок:
Код

/usr/include/boost/smart_ptr/shared_ptr.hpp(614): error: expected an identifier
  template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ )
                                ^

/usr/include/boost/smart_ptr/shared_ptr.hpp(680): error: expected a ";"
  }
  ^

/usr/include/boost/smart_ptr/shared_ptr.hpp(682): error: "atomic_compare_exchange_explicit" is not a function or static data member
  template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )
                                ^

/usr/include/boost/smart_ptr/shared_ptr.hpp(698): error: expected a declaration
  } // namespace boost
  ^

/usr/include/boost/date_time/time_clock.hpp(41): error: expected a declaration
      }
      ^

/usr/include/boost/date_time/time_clock.hpp(80): error: expected a declaration
  } } //namespace date_time
  ^

/usr/include/boost/date_time/microsec_time_clock.hpp(53): error: identifier "time_type" is undefined
      static time_type local_time(shared_ptr<time_zone_type> tz_ptr)
             ^

/usr/include/boost/date_time/microsec_time_clock.hpp(53): error: "local_time" is not a function or static data member
      static time_type local_time(shared_ptr<time_zone_type> tz_ptr)
                       ^

/usr/include/boost/date_time/microsec_time_clock.hpp(109): error: name followed by "::" must be a class or namespace name
        int adjust = static_cast< int >(resolution_traits_type::res_adjust() / 1000000);
                                        ^

/usr/include/boost/date_time/microsec_time_clock.hpp(111): error: identifier "time_duration_type" is undefined
        time_duration_type td(static_cast< typename time_duration_type::hour_type >(curr_ptr->tm_hour),
        ^

/usr/include/boost/date_time/microsec_time_clock.hpp(111): error: name followed by "::" must be a class or namespace name
        time_duration_type td(static_cast< typename time_duration_type::hour_type >(curr_ptr->tm_hour),
                                                    ^

/usr/include/boost/date_time/microsec_time_clock.hpp(111): error: identifier "curr_ptr" is undefined
        time_duration_type td(static_cast< typename time_duration_type::hour_type >(curr_ptr->tm_hour),
                                                                                    ^

/usr/include/boost/date_time/microsec_time_clock.hpp(111): error: expected a ")"
        time_duration_type td(static_cast< typename time_duration_type::hour_type >(curr_ptr->tm_hour),
                                                                                                      ^

/usr/include/boost/date_time/microsec_time_clock.hpp(116): error: expected a declaration
        return time_type(d,td);
        ^

/usr/include/boost/date_time/microsec_time_clock.hpp(117): error: expected a declaration
      }
      ^

/usr/include/boost/date_time/microsec_time_clock.hpp(121): error: expected a declaration
  } } //namespace date_time
  ^

/usr/include/boost/date_time/time_duration.hpp(45): error: identifier "rep_type" is undefined
      typedef rep_type traits_type;
              ^

/usr/include/boost/date_time/time_duration.hpp(46): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::day_type  day_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(47): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::hour_type hour_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(48): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::min_type  min_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(49): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::sec_type  sec_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(50): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::fractional_seconds_type fractional_seconds_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(51): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::tick_type tick_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(52): error: name followed by "::" must be a class or namespace name
      typedef typename rep_type::impl_type impl_type;
                       ^

/usr/include/boost/date_time/time_duration.hpp(54): error: expected a "{"
      time_duration() : ticks_(0) {}
                      ^

/usr/include/boost/date_time/time_duration.hpp(58): error: expected a "{"
                    fractional_seconds_type frac_sec_in = 0) :
                                                             ^

/usr/include/boost/date_time/time_duration.hpp(63): error: overloaded function "time_duration" is not a template
      time_duration(const time_duration<T, rep_type>& other)
                          ^

/usr/include/boost/date_time/time_duration.hpp(63): error: identifier "T" is undefined
      time_duration(const time_duration<T, rep_type>& other)
                                        ^

/usr/include/boost/date_time/time_duration.hpp(63): error: identifier "rep_type" is undefined
      time_duration(const time_duration<T, rep_type>& other)
                                           ^

/usr/include/boost/date_time/time_duration.hpp(64): error: expected a "{"
        : ticks_(other.ticks_)
        ^

/usr/include/boost/date_time/time_duration.hpp(67): error: identifier "special_values" is undefined
      time_duration(special_values sv) : ticks_(impl_type::from_special(sv))
                    ^

/usr/include/boost/date_time/time_duration.hpp(67): error: expected a "{"
      time_duration(special_values sv) : ticks_(impl_type::from_special(sv))
                                       ^

/usr/include/boost/date_time/time_duration.hpp(70): error: identifier "duration_type" is undefined
      static duration_type unit()
             ^

/usr/include/boost/date_time/time_duration.hpp(72): error: identifier "duration_type" is undefined
        return duration_type(0,0,0,1);
               ^

/usr/include/boost/date_time/time_duration.hpp(77): error: name followed by "::" must be a class or namespace name
        return rep_type::res_adjust();
               ^

/usr/include/boost/date_time/time_duration.hpp(80): error: identifier "time_resolutions" is undefined
      static time_resolutions resolution()
             ^

/usr/include/boost/date_time/time_duration.hpp(82): error: name followed by "::" must be a class or namespace name
        return rep_type::resolution();
               ^

/usr/include/boost/date_time/time_duration.hpp(85): error: a type qualifier is not allowed on a nonmember function
      hour_type hours()   const
                          ^

/usr/include/boost/date_time/time_duration.hpp(87): error: identifier "ticks" is undefined
        return static_cast<hour_type>(ticks() / (3600*ticks_per_second()));
                                      ^

/usr/include/boost/date_time/time_duration.hpp(90): error: a type qualifier is not allowed on a nonmember function
      min_type minutes() const
                         ^

/usr/include/boost/date_time/time_duration.hpp(92): error: identifier "ticks" is undefined
        return static_cast<min_type>((ticks() / (60*ticks_per_second())) % 60);
                                      ^

/usr/include/boost/date_time/time_duration.hpp(95): error: a type qualifier is not allowed on a nonmember function
      sec_type seconds() const
                         ^

/usr/include/boost/date_time/time_duration.hpp(97): error: identifier "ticks" is undefined
        return static_cast<sec_type>((ticks()/ticks_per_second()) % 60);
                                      ^

/usr/include/boost/date_time/time_duration.hpp(100): error: a type qualifier is not allowed on a nonmember function
      sec_type total_seconds() const
                               ^

/usr/include/boost/date_time/time_duration.hpp(102): error: identifier "ticks" is undefined
        return static_cast<sec_type>(ticks() / ticks_per_second());
                                     ^

/usr/include/boost/date_time/time_duration.hpp(105): error: a type qualifier is not allowed on a nonmember function
      tick_type total_milliseconds() const
                                     ^

/usr/include/boost/date_time/time_duration.hpp(108): error: identifier "ticks" is undefined
          return ticks() * (static_cast<tick_type>(1000) / ticks_per_second());
                 ^

/usr/include/boost/date_time/time_duration.hpp(110): error: identifier "ticks" is undefined
        return ticks() / (ticks_per_second() / static_cast<tick_type>(1000)) ;
               ^

/usr/include/boost/date_time/time_duration.hpp(113): error: a type qualifier is not allowed on a nonmember function
      tick_type total_nanoseconds() const
                                    ^

/usr/include/boost/date_time/time_duration.hpp(116): error: identifier "ticks" is undefined
          return ticks() * (static_cast<tick_type>(1000000000) / ticks_per_second());
                 ^

/usr/include/boost/date_time/time_duration.hpp(118): error: identifier "ticks" is undefined
        return ticks() / (ticks_per_second() / static_cast<tick_type>(1000000000)) ;
               ^

/usr/include/boost/date_time/time_duration.hpp(121): error: a type qualifier is not allowed on a nonmember function
      tick_type total_microseconds() const
                                     ^

/usr/include/boost/date_time/time_duration.hpp(124): error: identifier "ticks" is undefined
          return ticks() * (static_cast<tick_type>(1000000) / ticks_per_second());
                 ^

/usr/include/boost/date_time/time_duration.hpp(126): error: identifier "ticks" is undefined
        return ticks() / (ticks_per_second() / static_cast<tick_type>(1000000)) ;
               ^

/usr/include/boost/date_time/time_duration.hpp(129): error: a type qualifier is not allowed on a nonmember function
      fractional_seconds_type fractional_seconds() const
                                                   ^

/usr/include/boost/date_time/time_duration.hpp(131): error: identifier "ticks" is undefined
        return (ticks() % ticks_per_second());
                ^

/usr/include/boost/date_time/time_duration.hpp(136): error: name followed by "::" must be a class or namespace name
        return rep_type::num_fractional_digits();
               ^

/usr/include/boost/date_time/time_duration.hpp(138): error: identifier "duration_type" is undefined
      duration_type invert_sign() const
      ^

/usr/include/boost/date_time/time_duration.hpp(138): error: a type qualifier is not allowed on a nonmember function
      duration_type invert_sign() const
                                  ^

/usr/include/boost/date_time/time_duration.hpp(140): error: identifier "ticks_" is undefined
        return duration_type(ticks_ * (-1));
                             ^

/usr/include/boost/date_time/time_duration.hpp(140): error: identifier "duration_type" is undefined
        return duration_type(ticks_ * (-1));
               ^

/usr/include/boost/date_time/time_duration.hpp(142): error: a type qualifier is not allowed on a nonmember function
      bool is_negative() const
                         ^

/usr/include/boost/date_time/time_duration.hpp(144): error: identifier "ticks_" is undefined
        return ticks_ < 0;
               ^

/usr/include/boost/date_time/time_duration.hpp(146): error: overloaded function "time_duration" is not a type name
      bool operator<(const time_duration& rhs)  const
                           ^

/usr/include/boost/date_time/time_duration.hpp(146): error: a type qualifier is not allowed on a nonmember function
      bool operator<(const time_duration& rhs)  const
                                                ^

/usr/include/boost/date_time/time_duration.hpp(146): error: too few parameters for this operator function
      bool operator<(const time_duration& rhs)  const
           ^

/usr/include/boost/date_time/time_duration.hpp(146): error: nonmember operator requires a parameter with class or enum type
      bool operator<(const time_duration& rhs)  const
           ^

/usr/include/boost/date_time/time_duration.hpp(148): error: identifier "ticks_" is undefined
        return ticks_ <  rhs.ticks_;
               ^

/usr/include/boost/date_time/time_duration.hpp(150): error: overloaded function "time_duration" is not a type name
      bool operator==(const time_duration& rhs)  const
                            ^

/usr/include/boost/date_time/time_duration.hpp(150): error: a type qualifier is not allowed on a nonmember function
      bool operator==(const time_duration& rhs)  const
                                                 ^

/usr/include/boost/date_time/time_duration.hpp(150): error: too few parameters for this operator function
      bool operator==(const time_duration& rhs)  const
           ^

/usr/include/boost/date_time/time_duration.hpp(150): error: nonmember operator requires a parameter with class or enum type
      bool operator==(const time_duration& rhs)  const
           ^

/usr/include/boost/date_time/time_duration.hpp(152): error: identifier "ticks_" is undefined
        return ticks_ ==  rhs.ticks_;
               ^

/usr/include/boost/date_time/time_duration.hpp(155): error: identifier "duration_type" is undefined
      duration_type operator-()const
      ^

/usr/include/boost/date_time/time_duration.hpp(155): error: a type qualifier is not allowed on a nonmember function
      duration_type operator-()const
                               ^

/usr/include/boost/date_time/time_duration.hpp(155): error: too few parameters for this operator function
      duration_type operator-()const
                    ^

/usr/include/boost/date_time/time_duration.hpp(155): error: nonmember operator requires a parameter with class or enum type
      duration_type operator-()const
                    ^

/usr/include/boost/date_time/time_duration.hpp(157): error: identifier "ticks_" is undefined
        return duration_type(ticks_ * (-1));
                             ^

/usr/include/boost/date_time/time_duration.hpp(157): error: identifier "duration_type" is undefined
        return duration_type(ticks_ * (-1));
               ^

/usr/include/boost/date_time/time_duration.hpp(159): error: identifier "duration_type" is undefined
      duration_type operator-(const duration_type& d) const
      ^

/usr/include/boost/date_time/time_duration.hpp(159): error: identifier "duration_type" is undefined
      duration_type operator-(const duration_type& d) const
                                    ^

/usr/include/boost/date_time/time_duration.hpp(159): error: a type qualifier is not allowed on a nonmember function
      duration_type operator-(const duration_type& d) const
                                                      ^

/usr/include/boost/date_time/time_duration.hpp(159): error: nonmember operator requires a parameter with class or enum type
      duration_type operator-(const duration_type& d) const
                    ^

/usr/include/boost/date_time/time_duration.hpp(161): error: identifier "ticks_" is undefined
        return duration_type(ticks_ - d.ticks_);
                             ^

/usr/include/boost/date_time/time_duration.hpp(161): error: identifier "duration_type" is undefined
        return duration_type(ticks_ - d.ticks_);
               ^

/usr/include/boost/date_time/time_duration.hpp(163): error: identifier "duration_type" is undefined
      duration_type operator+(const duration_type& d) const
      ^

/usr/include/boost/date_time/time_duration.hpp(163): error: identifier "duration_type" is undefined
      duration_type operator+(const duration_type& d) const
                                    ^

/usr/include/boost/date_time/time_duration.hpp(163): error: a type qualifier is not allowed on a nonmember function
      duration_type operator+(const duration_type& d) const
                                                      ^

/usr/include/boost/date_time/time_duration.hpp(163): error: nonmember operator requires a parameter with class or enum type
      duration_type operator+(const duration_type& d) const
                    ^

/usr/include/boost/date_time/time_duration.hpp(165): error: identifier "ticks_" is undefined
        return duration_type(ticks_ + d.ticks_);
                             ^

/usr/include/boost/date_time/time_duration.hpp(165): error: identifier "duration_type" is undefined
        return duration_type(ticks_ + d.ticks_);
               ^

/usr/include/boost/date_time/time_duration.hpp(167): error: identifier "duration_type" is undefined
      duration_type operator/(int divisor) const
      ^

/usr/include/boost/date_time/time_duration.hpp(167): error: a type qualifier is not allowed on a nonmember function
      duration_type operator/(int divisor) const
                                           ^

/usr/include/boost/date_time/time_duration.hpp(167): error: too few parameters for this operator function
      duration_type operator/(int divisor) const
                    ^

/usr/include/boost/date_time/time_duration.hpp(167): error: nonmember operator requires a parameter with class or enum type
      duration_type operator/(int divisor) const
                    ^

/usr/include/boost/date_time/time_duration.hpp(169): error: identifier "ticks_" is undefined
        return duration_type(ticks_ / divisor);
                             ^

/usr/include/boost/date_time/time_duration.hpp(169): error: identifier "duration_type" is undefined
        return duration_type(ticks_ / divisor);
               ^

/usr/include/boost/date_time/time_duration.hpp(171): error: identifier "duration_type" is undefined
      duration_type operator-=(const duration_type& d)
      ^

/usr/include/boost/date_time/time_duration.hpp(171): error: identifier "duration_type" is undefined
      duration_type operator-=(const duration_type& d)
                                     ^

/usr/include/boost/date_time/time_duration.hpp(171): error: too few parameters for this operator function
      duration_type operator-=(const duration_type& d)
                    ^

compilation aborted for icctest.cpp (code 4)



Это с "-std=c++0x". Без "-std=c++0x" ошибок не меньше, но они другие.

Это сообщение отредактировал(а) phprus - 12.9.2011, 21:22
PM MAIL WWW ICQ   Вверх
Artemon
Дата 12.9.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Имеете ввиду аргумент функции shared_ptr<T> const * /*p*/  заменился на true ?

Добавлено через 3 минуты и 1 секунду
Если оба бустовских хедера отключить приложение собирается ?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
phprus
Дата 12.9.2011, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



Artemon
Нет. Код превратился в такой:
Код

template<class T> inline bool true
{
    return false;
}

Каких-либо пользовательских дефайнов, которые могли бы дать такой эффект нет, да и код проекта, на котором я заметил проблему, компилируется при помощи icc 12.0, icc 11.1, gcc 4.1.2 и gcc 4.4.4.

Пример ошибок добавил в сообщение выше.

Добавлено через 1 минуту и 12 секунд
Цитата(Artemon @  13.9.2011,  00:21 Найти цитируемый пост)
Если оба бустовских хедера отключить приложение собирается ? 

Да.
Приложение то, одна функция main, которая 0 возвращает.
PM MAIL WWW ICQ   Вверх
phprus
Дата 13.9.2011, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



На форуме Intel создали аналогичное обсуждение - http://software.intel.com/en-us/forums/sho...ead.php?t=85958
Я написал в него про ошибки из этой темы.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0836 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.