gpt4 book ai didi

c++ - 模板关键字作为模板参数

转载 作者:行者123 更新时间:2023-11-28 04:24:34 25 4
gpt4 key购买 nike

阅读 Ivan Čukić 的 c++ 函数式编程,在第 9.1.4 节末尾看到了这一点。

“template Variant”和“template Expected”这个语法是从哪里来的?

template <typename T, template Variant,
template Expected = expected<T, std::string>>
Expected get_if(const Variant& variant)
{
T* ptr = std::get_if<T>(variant);
if (ptr) {
return Expected::success(*ptr);
} else {
return Expected::error("Variant doesn't contain the desired type");
}
}

这是有效的 C++ 语法吗?它看起来不像模板模板参数。

在 Godbolt 上尝试一个小玩具样本对我来说不起作用。

template <typename T, template Variant, template E = std::map<T, std::string>>
int f(const Variant& v) {
return std::get<0>(v);
}
int main() {
std::variant<int> v{0};
return f(v);
}

最佳答案

这是书中的错别字。用“typename”替换这两个出现的“template”。

这是勘误表的链接。 https://forums.manning.com/posts/list/45184.page

关于c++ - 模板关键字作为模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681801/

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