boost & g++:调用'current_path()'没有匹配函数
boost & g++: no matching function for call to 'current_path()'
我有以下代码:
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 enterprise 6.2上有g++4.4.6,版本为1.41.0(我知道它很旧,但我没有升级的选项)。
查看current_path
的定义。。。
template< class Path > Path current_path() ...
current_path
是一个函数模板,模板参数类型无法从其参数中推断出来(其中没有),因此我们必须显式提供模板参数- CCD_ 4的返回类型具有与模板参数相同的类型
这样做的原因是我们可以返回窄和宽的字符路径,即:
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>();
wpath
是path
的宽字符版本(类似于wstring
和string
)。
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- 如何在c++中为模板函数实例创建快捷方式
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗