选项来显示从模板创建的类

g++ option to show what classes are created from templates

本文关键字:创建 显示 选项      更新时间:2023-10-16

是否有一些g++选项显示从模板创建的类?例如,在原始源代码中有模板定义:

template <class T>
struct SomeStruct { T variable; };
SomeStruct<int> instance;

和我想看到SomeStruct .

您可以通过-fdump-class-hierarchy标志获得该信息。它会列出比你要求的更多的内容,但是如果搜索以Class开头的行,你会找到你要找的。

EDIT:这是包含iostream的程序的一些输出。您可以看到charwchar_t的实例化:

Class std::basic_ostream<char, std::char_traits<char> >
Class std::basic_ostream<char, std::char_traits<char> >::sentry
Class std::basic_ostream<wchar_t, std::char_traits<wchar_t> >
Class std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::sentry
Class std::basic_istream<char, std::char_traits<char> >
Class std::basic_istream<wchar_t, std::char_traits<wchar_t> >
Class std::basic_istream<char, std::char_traits<char> >::sentry
Class std::basic_iostream<char, std::char_traits<char> >
Class std::basic_istream<wchar_t, std::char_traits<wchar_t> >::sentry
Class std::basic_iostream<wchar_t, std::char_traits<wchar_t> >

实现就像它看起来一样明显:您为T放入实际类型。

struct SomeStruct<int> { int variable; };