gpt4 book ai didi

c++ - 无法在函数中声明模板化类型别名

转载 作者:行者123 更新时间:2023-11-30 01:39:05 27 4
gpt4 key购买 nike

我正在尝试做

template <typename N>
using Array = std::array<std::uint8_t, N>;

在一个函数中,但 clang 报错:期望的表达式。

例如

void func()
{
template <typename T>
using Vec = std:vector<T>;
}

将导致此错误。

这在函数中是不允许的吗?如果是,为什么?谢谢

最佳答案

是的,alias template只能在类范围或命名空间范围内声明。

Like any template declaration, an alias template can only be declared at class scope or namespace scope.

顺便说一句:你应该声明一个 non-type template parameter对于您的别名模板Array,例如

template <std::size_t N>
using Array = std::array<std::uint8_t, N>;

关于c++ - 无法在函数中声明模板化类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46510358/

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