首页 > 解决方案 > ')' 标记之前的预期主表达式

问题描述

为什么 GCC 拒绝编译这段代码,以及如何修复它?

template<size_t ch>
class ChannelsData
{
    std::array<int, ch> vals;

public:

    template<size_t i>
    inline int& at()
    {
        static_assert( i < ch );
        return vals[ i ];
    }
};

template<size_t c>
inline void something(ChannelsData<c>& dest)
{
    dest.at<0>() = 0;
}

int main()
{
    ChannelsData<1> cd;
    something( cd );
    return 0;
}

标签: c++templatesgcc

解决方案


推荐阅读