我有以下代码:
boost::filesystem::path p = boost::filesystem::current_path();
但我从 g++ 得到这个错误:
filesystem.cc: In function ‘int main(int, char**)’:
filesystem.cc:11: error: no matching function for call to ‘current_path()’
/usr/include/boost/filesystem/operations.hpp:769: note: candidates are: void boost::filesystem::current_path(const boost::filesystem::path&)
/usr/include/boost/filesystem/operations.hpp:771: note: void boost::filesystem::current_path(const boost::filesystem::wpath&)
在 /usr/include/boost/filesystem/operations.hpp 中,我有以下内容:
template< class Path >
Path current_path()
{
typename Path::external_string_type ph;
system::error_code ec( detail::get_current_path_api( ph ) );
if ( ec )
boost::throw_exception( basic_filesystem_error<Path>(
"boost::filesystem::current_path", ec ) );
return Path( Path::traits_type::to_internal( ph ) );
}
所以功能就在那里。我正在使用它,就像 boost 文档中的示例一样。我在这里错过了什么愚蠢的东西吗?如果我用“。”创建路径,它可以工作,但我想要完整的路径名,而不仅仅是“。”。
我在 RedHat 企业 6.2 上有 g++ 4.4.6,带有 boost 1.41.0(我知道它很旧,但我没有升级的选项)。