Arhn - архитектура программирования

Boost включает в себя сеет хаос, но это не вина Boost

Я внедряю Boost в свой проект, и как только я включаю заголовки Boost (#include <boost/property_tree/ptree.hpp>) в определенный файл, я получаю ошибки в заголовках boost.

Вот краткий фрагмент ошибок:

1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(28): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(28): error C2143: syntax error : missing ',' before 'sizeof'
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(26): error C3747: missing default template parameter : parameter 2
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(40): error C2974: 'boost::mpl::if_' : invalid template argument for 'T2', type expected
1>          c:\boost\include\boost-1_57\boost\mpl\if.hpp(56) : see declaration of 'boost::mpl::if_'
1>          c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(44) : see reference to class template instantiation 'boost::mpl::eval_if<C,__formal>' being compiled
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(40): error C2974: 'boost::mpl::if_' : invalid template argument for 'T3', type expected
1>          c:\boost\include\boost-1_57\boost\mpl\if.hpp(56) : see declaration of 'boost::mpl::if_'
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(50): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(50): error C2143: syntax error : missing ',' before 'sizeof'
1>c:\boost\include\boost-1_57\boost\mpl\eval_if.hpp(62): error C2974: 'boost::mpl::if_c' : invalid template argument for 'T1', type expected

Я сразу подумал о конфликте пространств имен и удалил все using namespace std, но это не решило проблему. Я использовал потоки Boost в другом месте, и он работал, как и ожидалось (но этот код теперь неактивен и не создается).

Любые подсказки?

--- Некоторые примечания

  1. Запуск в VS2013

  2. Код без using namespace std строится и работает

09.03.2015

  • Что произойдет, если вы включите заголовки boost в простое приложение hello word? 09.03.2015
  • Не видя заголовочный/исходный файл, в который вы его включаете, будет очень сложно диагностировать проблему. 09.03.2015
  • Какая версия компилятора? И с какими флагами? Похоже на проблему, связанную с /Za. 09.03.2015
  • Я бы предложил вернуться к версии до того, как вы включили заголовки Boost, убедиться, что она компилируется, а затем удалить using namespace std; (и, возможно, другие директивы использования, если таковые имеются). Как только вы получите это для компиляции, попробуйте включить заголовки Boost. 09.03.2015
  • @ Натан Оливер. Проблем с использованием boost нет вообще. Это определенно как-то связано с моим кодом 09.03.2015
  • Единственное, о чем я могу думать, это ошибка в одном из ваших файлов заголовков, который включается перед заголовком boost. Я видел, что это выглядит так, как будто ошибка находится в заголовке, включенном после. Одна вещь, которую вы можете сделать, чтобы помочь найти проблему, — это сначала включить все системные заголовки и заголовки Boost, а затем включить свои собственные заголовки. 09.03.2015
  • @ Натан Оливер. Хороший звонок. Просто переместил ускорение, прежде чем включить stl, и это решило проблему. Поместите это в ответ, и я приму его как правильный;) 10.03.2015

Ответы:


1

Единственное, о чем я могу думать, это ошибка в одном из ваших файлов заголовков, который включается перед заголовком boost. Я видел, что это выглядит так, как будто ошибка находится в заголовке, включенном после. Одна вещь, которую вы можете сделать, чтобы помочь найти проблему, — это сначала включить все системные заголовки и заголовки Boost, а затем включить свои собственные заголовки.

10.03.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..