gpt4 book ai didi

c++ - static_assert 可以检查类型是否为 vector 吗?

转载 作者:IT老高 更新时间:2023-10-28 22:01:16 25 4
gpt4 key购买 nike

static_assert 可以检查一个类型是否是一个 vector 吗? IE,一个 int会提出断言,而 vector<int>不会。
我正在考虑以下内容:

static_assert(decltype(T) == std::vector, "Some error")

最佳答案

是的。考虑以下元函数:

#include <stdio.h>
#include <vector>

template <class N>
struct is_vector { static const int value = 0; };

template <class N, class A>
struct is_vector<std::vector<N, A> > { static const int value = 1; };

int main()
{
printf("is_vector<int>: %d\n", is_vector<int>::value);
printf("is_vector<vector<int> >: %d\n", is_vector<std::vector<int> >::value);
}

只需将其用作 static_assert 中的表达式。

关于c++ - static_assert 可以检查类型是否为 vector 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6953969/

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