gpt4 book ai didi

c++ - QMetaMethod 中的完整类型名称

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:22 26 4
gpt4 key购买 nike

是否可以在 QMetaMethod 中接收返回类型和/或参数类型的完整类型名称?

例子,

namespace N1 {
namespace N2 {
class C1: public QObject {
Q_OBJECT
};
}
}


class C2: public QObject {
Q_OBJECT
public:
typedef N1::N2::C1 C1T;

Q_INVOKABLE void foo(C1T c1);
};

QMetaMethod method;

// some logic to find method void foo(C1T) of C2

auto name = method.parameterNames(); // return "C1T"

auto name2 = C1T::staticMetaObjec.className() // return "N1::N2::C1"

是否可以找出方法参数名称的全名,而不是“C1T”,而是“N1::N2::C1”,或者至少是“C1”?命名空间的同样问题,如果 C2 在 N1 命名空间中并且我使用 N2::C1 作为参数类型,它返回“N2::C1”,我可以有“N1::N2::C2”吗?

最佳答案

moc 不理解 C++ 类型系统。对于 moc,类型是字符串,并且仅当字符串匹配时才等同于另一种类型。您必须坚持一种表示参数类型的方式,并使用它。

关于c++ - QMetaMethod 中的完整类型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109151/

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