使用boost :: filesystem :: path作为参数的C ++构造函数调用-没有任何反应

风能

我有一个使我感到困惑的问题,我的C ++理解中缺少一些东西。

我正在尝试使用boost :: filesystem :: path(它本身是由basic_string构造)构造一个对象,我认为我可以通过在与构造相同的一行上构造boost路径来保存一行代码我的对象。

请参阅以下示例:

我不明白的一件事是,尽管它不起作用,但我也没有收到任何错误。即似乎什么也没发生。为什么会这样呢?

class Test {
 public:
    Test(boost::filesystem::path in) {
        std::cout << "Succesful construction" << std::endl;
    }
};

int main() {
    std::string str("asdf.txt");
    boost::filesystem::path p(str);
    Test test1(boost::filesystem::path(str));  // Nothing at all happens, but no error
    Test test2(p);  // "Succesful construction"
}
巴里

这就是C ++所谓的“最烦人的解析”。您遇到的问题是:

Test test1(boost::filesystem::path(str));

是对的函数的声明,该函数test1返回aTest并接受一个boost::filesystem::path名为的类型的参数str圆括号str被解析为多余,因此该行被解释为等效于:

Test test1(boost::filesystem::path str);

如果使用C ++ 11进行编译,则可以将大括号替换为大括号:

Test test1{boost::filesystem::path(str)};

在C ++ 11之前的版本中,您可以使用一组额外的括号:

Test test1((boost::filesystem::path(str)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

构造函数使用参数调用构造函数

来自分类Dev

没有调用C ++默认构造函数

来自分类Dev

没有调用C ++默认构造函数

来自分类Dev

boost :: filesystem :: path与boost :: filesystem :: wpath

来自分类Dev

具有Unicode字符的C ++ Boost :: filesystem :: path

来自分类Dev

C ++ Boost :: serialization在调用函数的参数中“无匹配函数可供调用”到类的构造函数

来自分类Dev

调用没有硬编码参数的构造函数(耦合)

来自分类Dev

如何使用在Boost Fusion容器中实例化的类型的参数调用构造函数?

来自分类Dev

C ++:使用运算符=调用多参数构造函数

来自分类Dev

没有调用C ++模板化静态成员构造函数

来自分类Dev

使用dplyr和NSE动态构造具有不同参数的函数调用

来自分类Dev

意外错误“没有匹配的函数可调用”,期望构造函数没有参数

来自分类Dev

如何在函数调用中使用Typescript泛型类构造函数作为参数

来自分类Dev

为什么使用Facebook登录按钮在CallbackManager上调用onActivityResult()之后绝对没有任何反应?

来自分类Dev

如果没有作为函数参数传递任何内容,请使用接口的默认实现

来自分类Dev

使用Boost Python将具有数组参数的构造函数暴露给类

来自分类Dev

在PHP中使用shell_exec()函数时,没有任何反应

来自分类Dev

尝试从C#Windows窗体调用存储过程,但没有任何反应

来自分类Dev

使用Lambda在Java流中使用参数调用构造函数

来自分类Dev

没有匹配函数可调用带有参考参数的构造函数

来自分类Dev

如何从无参数构造函数中调用带有2个参数的构造函数?

来自分类Dev

如何使用带有 Boost.Python 的 std::map 或 std::vector 参数的构造函数包装 C++ 类?

来自分类Dev

构造函数没有被调用

来自分类Dev

C ++:可以调用任何构造函数的泛型工厂?

来自分类Dev

Swift构造函数为什么使用命名参数调用?

来自分类Dev

在MVVM light SimpleIOC中使用参数调用构造函数

来自分类Dev

Swift构造函数为什么使用命名参数调用?

来自分类Dev

如何使用可变参数宏来调用嵌套构造函数?

来自分类Dev

在MVVM light SimpleIOC中使用参数调用构造函数

Related 相关文章

  1. 1

    构造函数使用参数调用构造函数

  2. 2

    没有调用C ++默认构造函数

  3. 3

    没有调用C ++默认构造函数

  4. 4

    boost :: filesystem :: path与boost :: filesystem :: wpath

  5. 5

    具有Unicode字符的C ++ Boost :: filesystem :: path

  6. 6

    C ++ Boost :: serialization在调用函数的参数中“无匹配函数可供调用”到类的构造函数

  7. 7

    调用没有硬编码参数的构造函数(耦合)

  8. 8

    如何使用在Boost Fusion容器中实例化的类型的参数调用构造函数?

  9. 9

    C ++:使用运算符=调用多参数构造函数

  10. 10

    没有调用C ++模板化静态成员构造函数

  11. 11

    使用dplyr和NSE动态构造具有不同参数的函数调用

  12. 12

    意外错误“没有匹配的函数可调用”,期望构造函数没有参数

  13. 13

    如何在函数调用中使用Typescript泛型类构造函数作为参数

  14. 14

    为什么使用Facebook登录按钮在CallbackManager上调用onActivityResult()之后绝对没有任何反应?

  15. 15

    如果没有作为函数参数传递任何内容,请使用接口的默认实现

  16. 16

    使用Boost Python将具有数组参数的构造函数暴露给类

  17. 17

    在PHP中使用shell_exec()函数时,没有任何反应

  18. 18

    尝试从C#Windows窗体调用存储过程,但没有任何反应

  19. 19

    使用Lambda在Java流中使用参数调用构造函数

  20. 20

    没有匹配函数可调用带有参考参数的构造函数

  21. 21

    如何从无参数构造函数中调用带有2个参数的构造函数?

  22. 22

    如何使用带有 Boost.Python 的 std::map 或 std::vector 参数的构造函数包装 C++ 类?

  23. 23

    构造函数没有被调用

  24. 24

    C ++:可以调用任何构造函数的泛型工厂?

  25. 25

    Swift构造函数为什么使用命名参数调用?

  26. 26

    在MVVM light SimpleIOC中使用参数调用构造函数

  27. 27

    Swift构造函数为什么使用命名参数调用?

  28. 28

    如何使用可变参数宏来调用嵌套构造函数?

  29. 29

    在MVVM light SimpleIOC中使用参数调用构造函数

热门标签

归档