ошибка компиляции boost :: thread в Visual Studio 2010 - PullRequest
4 голосов
/ 01 марта 2011

Я пытаюсь не использовать boost впервые за долгое время, и когда я включаю заголовок boost / thread.hpp, я получаю ошибку компиляции внутри самого boost:

    c:\myproj\boost_1_46_0\boost\thread\win32\thread_heap_alloc.hpp(97): error C2061: syntax error : identifier 'heap_memory
    c:\myproj\boost_1_46_0\boost\thread\detail\thread.hpp(134) : see reference to function template instantiation 'T *boost::detail::heap_new<boost::detail::thread_data<F>,void(__cdecl *)(void)>(A1 &&)' being compiled
    with
    [
        T=boost::detail::thread_data<void (__cdecl *)(void)>,
        F=void (__cdecl *)(void),
        A1=void (__cdecl *)(void)
    ]`

Это происходит простовключив заголовок, он, похоже, не имеет никакого отношения к моему коду, но я не вижу, что с этим делать, кто-нибудь может помочь?

Ответы [ 3 ]

5 голосов
/ 08 мая 2013

Если вы используете мастер MSVC, обязательно включите заголовок повышения

#include <boost/thread/thread.hpp>

перед сгенерированным блоком

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
3 голосов
/ 22 марта 2011

Возможно, вы # включили какой-то другой пакет с #define 'new', который затем нарушает то, что Boost пытается сделать с размещением new.Чтобы увидеть код после предварительной обработки, скомпилируйте с помощью / P или / E, а затем найдите эту строку в выходных данных и посмотрите, не выглядит ли она по-другому.

0 голосов
/ 27 марта 2013

Да, я знаю проблему. Вы можете найти что-то интересное из http://connect.microsoft.com/VisualStudio/feedback/details/683483/mfc-c-fails-to-compile-use-of-codecvt-utf8-in-debug-configuration

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...