gpt4 book ai didi

c++ - 使用 Visual Studio 编译器在编译时获取 vector 元素的大小(即使它是空的)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:36 26 4
gpt4 key购买 nike

<分区>

给定某种类型元素的 std::vector,我如何使用 Visual Studio 编译器在编译时确定这些元素类型的大小。在第一个元素上使用 sizeof 不是一个选项,因为 vector 可能为空。

对于 clang 和 gcc,我可以这样做:

#include <vector>

template<typename T>
size_t size_of_vector_elements(std::vector<T> vector)
{
return sizeof(T);
}


int square(int num)
{
std::vector<unsigned> vector;
return size_of_vector_elements(vector);
}

使用 O2 这将在编译时优化为仅返回 4。然而 MSVC 无法优化它。有没有办法更改此代码以使其成为可能?

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