gpt4 book ai didi

c++ - 为什么这段代码不能编译?

转载 作者:行者123 更新时间:2023-11-30 00:40:10 25 4
gpt4 key购买 nike

这些代码有什么区别吗:

std::string dirName = argv[1];
MyRecordDatabaseType myDB(Selector<std::string>((std::string)dirName));

std::string dirName = argv[1];
MyRecordDatabaseType myDB(Selector<std::string>(dirName));

我不知道为什么第二个版本不能编译。

编译器告诉我:

error: request for member ‘createGroupWriter’ in ‘myDB’, which is of non-class type ‘main(int, char**)::MyRecordDatabaseType(Selector<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)’

在线:

MyRecordDatabaseType::writer_type myWriter(myDB.createGroupWriter(groupName));

抱歉,我无法向您展示 Selector 或任何其他类的代码。

如果没有那个,也许你可以帮助我?

最佳答案

是的,不同的是这一行

MyRecordDatabaseType myDB(Selector<std::string>(dirName)); 

也可以这样写

MyRecordDatabaseType myDB(Selector<std::string>  dirName); 

并且是返回 MyRecordDatabaseType 的函数 myDB 的声明。

参见 C++ most vexing parse

关于c++ - 为什么这段代码不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com