Невозможно преобразовать итераторы пути Boost в строки - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь получить следующий код из nmdepend для компиляции

const std::string Bfd::packageName(const fs::path& path, int packageLevel)
{
  fs::path::iterator p = path.end();
  --p;

  for(int i = 0; i < packageLevel; ++i)
      --p;

  return *p;
}

Однако генерируется следующая ошибка компилятора

/Users/nick/Software/nmdepend/src/Bfd.cpp: In static member function ‘static const std::string Bfd::packageName(const boost::filesystem3::path&, int)’:
/Users/nick/Software/nmdepend/src/Bfd.cpp:27: error: conversion from ‘const boost::filesystem3::path’ to non-scalar type ‘const std::string’ requested

Как изменить этот код так, чтобы строка возвращалась, а манипулирование, которое предпринимается с помощью итератора, сохраняется?

1 Ответ

2 голосов
/ 29 февраля 2012

path неявно преобразуется в строку.Это должно работать, хотя:

return p->string();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...