gpt4 book ai didi

c++ - 我可以让 gcc 在编译期间发出对象的类型吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:38 24 4
gpt4 key购买 nike

我有这样的C++代码

auto x = foo(bar);

x.something();

由于模板和重载参数,x 的类型很难确定,编译在 x.something() 处失败,出现一个我正在努力解决的错误解释,因为我不知道 x 最终有什么类型。 (如果前面的代码是正确的,我知道它应该是什么,但事实可能并非如此。)

我可以让 gcc 告诉我 x 实际是什么类型吗?

最佳答案

您可以通过尝试访问不存在的类型来滥用编译器:

struct Foo{};

Foo foo(){ return Foo();}

int main()
{
auto x = foo();
using X = decltype(x)::ERROR;
}

然后检查编译错误:

main.cpp:8:28: 错误:“Foo”中没有名为“ERROR”的类型

这告诉你类型 Foo

live example

关于c++ - 我可以让 gcc 在编译期间发出对象的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542331/

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