C++ boost&;g++;:对';当前路径();

C++ boost&;g++;:对';当前路径();,c++,boost,g++,C++,Boost,G++,我有以下代码: 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/oper

我有以下代码:

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 ) );
}
模板
路径当前_路径()
{
typename路径::外部\字符串\类型ph;
系统::错误代码ec(详细信息::获取当前路径api(ph));
国际单项体育联合会(欧共体)
boost::抛出异常(基本文件系统错误)(
“boost::filesystem::current_path”,ec);
返回路径(路径::特征\类型::到\内部(ph));
}
所以函数就在那里。我使用它就像boost文档中的示例一样。有什么愚蠢的东西我错过了吗?如果我用“.”创建一个路径,它会工作,但我需要完整的路径名,而不仅仅是“.”


我在RedHat enterprise 6.2上安装了g++4.4.6和boost 1.41.0(我知道它很旧,但我没有升级的选择)。

查看当前路径的定义

templatePath current\u Path()…

  • current_path
    是一个函数模板,模板参数类型无法从其参数中推断出来(其中没有参数),因此我们必须显式提供模板参数
  • current_path()
    的返回类型与模板参数的类型相同
原因是我们可以返回窄字符路径和宽字符路径,即:

namespace fs = boost::filesystem;

// get the current path    
fs::path p = fs::current_path<fs::path>();

// get the current path in wide characters    
fs::wpath wp = fs::current_path<fs::wpath>();
namespace fs=boost::filesystem;
//获取当前路径
fs::path p=fs::current_path();
//获取宽字符的当前路径
fs::wpath wp=fs::current_path();

wpath
path
的宽字符版本(类似于
wstring
string
)。

是否定义了
BOOST\u FILESYSTEM\u NO\u弃用的
?此外,还需要为上述函数显式指定模板参数。