g++显示从模板创建哪些类的选项

发布于 2024-12-19 06:09:32 字数 205 浏览 2 评论 0原文

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

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

SomeStruct<int> instance;

并且我想查看 SomeStruct< 的实现整数>。

Is there some g++ option which shows what classes are created from templates? For example there is template definition in original source code:

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

SomeStruct<int> instance;

and I would like to see implementation of SomeStruct< int>.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

佞臣 2024-12-26 06:09:32

您可以使用 -fdump-class-hierarchy 标志获取该信息。它会列出比您要求的更多的内容,但如果搜索以 Class 开头的行,您就会找到您要查找的内容。

编辑:这是包含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> >

You can get that info with the -fdump-class-hierarchy flag. It'll list a lot more than you're asking for, but if search for lines that start with Class, you'll find what you're looking for.

EDIT: Here's some output from a program that includes iostream. You can see there are instantiations of char and wchar_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> >
望喜 2024-12-26 06:09:32

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

struct SomeStruct<int> { int variable; };

The implementation is just as obvious as it seems: You put the real type in for T.

struct SomeStruct<int> { int variable; };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文