/ / Защо е clang объркващо Boost за STL? - C ++, тласък, stl, header, clang

Защо е clang объркващо Boost за STL? - C ++, тласък, stl, header, clang

Опитвам се да компилирам C ++ библиотека (която се компилира добре в g ++) с Clang.

Въпреки това по някаква причина получавам грешки навсякъде, където използвам контейнер за бутилки. Съобщението за грешка изглежда предполага, че смята, че се опитвам да използвам набор от тласъци, които не мисля, че съм.

Не вярвам навсякъде, където по някакъв начин съм псевдоним boost като std, и никога не използвам using ключова дума.

/Users/zennatavares/repos/cliques/cliques/../cliques/structures/disjointset.h:140:8: error: too few template arguments for class template "set"
std::set<int> visited_parents_;
^
/usr/local/include/boost/detail/container_fwd.hpp:90:64: note: template is declared here
template <class Key, class Compare, class Allocator> class set;

Отговори:

6 за отговор № 1

Вярвам, че проблемът е да се опитаме да се опитаменапред деклариране на членовете на namespace std и Boost получава грешна декларация за грешка за libc ++. Няма преносим начин да правите такива декларации, така че тласъкът наистина не трябва да се прави. Декларирането на нещата в пространството за имена std води до недефинирано поведение.

Тук има грешка, подадена срещу подсилване на един от тези проблеми. https://svn.boost.org/trac/boost/ticket/5197

Ако публикувате пълна програма, която възпроизвежда проблема, може би можем да дадем повече подробности за това какво точно можете да направите, за да коригирате това във вашия случай.