gpt4 book ai didi

c++ - 如果因编译器错误错误 : wrong number of template arguments (2, 失败而模板化应为 3)

转载 作者:行者123 更新时间:2023-11-28 06:14:31 27 4
gpt4 key购买 nike

如果我用gcc编译下面的代码

namespace TMP {
// template to choose type depending on boolean condition
template <bool condition, typename x, typename y> struct if_t { typedef y type; };
template < typename x, typename y> struct if_t<true, typename x, typename y> { typedef x type; };

}

TMP::if_t<false, uint8_t, uint16_t>::type test;

我收到一条错误消息

error: wrong number of template arguments (2, should be 3)

如果我删除第二个模板,它将成功编译。但是我认为我的代码与书中的代码几乎相同 wikibook example .我的错误是什么?

最佳答案

实际上,只需删除多余的类型名称即可。用 gcc 4.9.2 编译。

namespace TMP {
// template to choose type depending on boolean condition
template <bool condition, typename x, typename y>
struct if_t
{
typedef y type;
};
template <typename x, typename y>
struct if_t < true, x, y >
{
typedef x type;
};

}

关于c++ - 如果因编译器错误错误 : wrong number of template arguments (2, 失败而模板化应为 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30599684/

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