gpt4 book ai didi

c++ - typeid(T) 是在运行时还是编译时求值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:46 26 4
gpt4 key购买 nike

我无法在任何地方找到这个看似简单的问题的答案。

下面的C++函数是否使用了RTTI?它当然不必,但我想知道是否可以保证在编译时确定 typeid。

template <typename T>
const char *getName()
{
return typeid(T).name(); // Resolved at compile time?
}

最佳答案

由于 typeid 应用于类型而不是对象, 没有运行时类型信息,因此开销不会成为问题。

另一方面:据我所知,该标准对何时确定值没有任何要求,因此不能保证没有运行时开销。


编辑:
当然,(可能)没有保证的事实并不意味着它不是一个合理的假设。
我无法想象有人会编写一个在编译时没有计算 typeid(T) 的编译器。

关于c++ - typeid(T) 是在运行时还是编译时求值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781832/

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