如何在C+中找到值的类型+;? 如何找到C++中的值类型?i、 e.C++与Python的type()等价物是什么?decltype(value)是单向的,其中value是变量名

如何在C+中找到值的类型+;? 如何找到C++中的值类型?i、 e.C++与Python的type()等价物是什么?decltype(value)是单向的,其中value是变量名,python,c++,Python,C++,在C++11之前,您需要使用模板元编程。您可以使用 #包括 ... cout类型ID操作符应该是最接近的特征。它检查动态类型,因此它适用于多态类型,但不适用于模板 例如: #include <iostream> #include <typeinfo> struct MyStructA {}; struct MyStructB: MyStructA {}; int main() { MyStructA* b = new MyStructB; auto&a

在C++11之前,您需要使用模板元编程。

您可以使用

#包括
...

cout类型ID操作符应该是最接近的特征。它检查动态类型,因此它适用于多态类型,但不适用于模板

例如:

#include <iostream>
#include <typeinfo>

struct MyStructA {};
struct MyStructB: MyStructA {};

int main() {
    MyStructA* b = new MyStructB;
    auto&& type = typeid(*b); // "type" is your type
    std::cout << type.name(); // print its name
    return 0;
}
#包括
#包括
结构MyStructA{};
结构MyStructB:MyStructA{};
int main(){
MyStructA*b=新的MyStructB;
auto&&type=typeid(*b);//“type”是您的类型

STD::CUT C++是静态类型的,它与Python有根本的区别。因此,它并没有直接等同于Python的 type < /C>函数,并且您需要提供更多关于用例的细节,以使您的问题可以回答。如果需要类型(即创建另一个变量).如果你想要一个名字(但名字会被弄乱,这不是一个好读的名字)。通常,你知道类型是因为你写的。
int i=5;
@user253751通常,你知道类型是因为你写的——如果你使用
auto
,就不会知道。当然,它不会告诉你动态类型,只是静态类型。我想不出你会像Python的一样使用
decltype
e> 键入
#include <iostream>
#include <typeinfo>

struct MyStructA {};
struct MyStructB: MyStructA {};

int main() {
    MyStructA* b = new MyStructB;
    auto&& type = typeid(*b); // "type" is your type
    std::cout << type.name(); // print its name
    return 0;
}