Конфликт между boost: type_erasure и boost :: iterator_facade

Рассмотрим эту очень простую программу:

#include <boost/type_erasure/is_placeholder.hpp>
#include <boost/iterator/iterator_adaptor.hpp>

int main()
{
return 0;
}

Это не компилируется с:

  include/boost/type_erasure/is_placeholder.hpp:31:33: error: reference to 'use_default' is ambiguous
struct is_placeholder< ::boost::use_default> : ::boost::mpl::false_ {};
^
include/boost/iterator/iterator_adaptor.hpp:44:18: note: candidate found by name lookup is 'boost::use_default'
using iterators::use_default;
^
include/boost/type_erasure/is_placeholder.hpp:21:8: note: candidate found by name lookup is 'boost::use_default'
struct use_default;
^
1 error generated.

Я не хочу идти и изменять эти заголовочные файлы. Как мне обойти эту проблему?

3

Решение

Временное решение будет заменить

struct use_default;

в `boost / type_erasure / is_placeholder.hpp ‘с

namespace iterators {
struct use_default;
}
using iterators::use_default;

Который находится в `boost / iterator / iterator_adaptor.hpp ‘.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector