gpt4 book ai didi

c++ - 编译期间模板优化中的static_cast

转载 作者:太空狗 更新时间:2023-10-29 23:03:41 24 4
gpt4 key购买 nike

假设我有一个或多或少像这样的功能(伪代码,不是真正的代码所以请不要考虑它有多大用处:P):

template <typename T>
T function()
{
std::vector<size_t> a = {1, 2, 3, 4, 5};
T r = 0;
for (size_t i=0; i<a.size(); ++i)
{
r += static_cast<T>(a[i]);
}
return r;
}

现在我想知道如果 T=size_t,编译器是否会优化 static_cast。我知道如果 T 是一个 int 没有太多事情要做,但它会在编译时被优化或解决吗?

最佳答案

对于原生类型,任何现代编译器都应该将 static_cast 优化为相同的类型。这是对同一问题的另一个答案,它表明具有非平凡复制构造函数的类型可能会产生开销。

Can static_cast to same type introduce runtime overhead?

关于c++ - 编译期间模板优化中的static_cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24863422/

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