0

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

文字列が返され、イテレータを使用して試行されている操作が維持されるようにするには、このコードをどのように変更する必要がありますか?

4

1 に答える 1

2

path暗黙的に文字列に変換できません。ただし、これは機能するはずです:

return p->string();
于 2012-02-29T00:40:52.743 に答える