std :: array作为虚函数中的参数 [英] std::array as a parameter in virtual function
本文介绍了std :: array作为虚函数中的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将std::array
作为参数发送给我的虚拟函数
I want to send std::array
as a parameter to my virtual function
class Handler:
{
public:
template <std::size_t N>
virtual void handle(const std::array<char, N>& msg, std::vector<boost::asio::const_buffer>& buffers) = 0;
};
,但gcc
表示templates may not be 'virtual'
.那么如何将std::array
传递给函数?
but gcc
said templates may not be 'virtual'
. So how i pass a std::array
to my function?
推荐答案
成员函数模板可能不是虚拟的.请参阅此问题.
A member function template may not be virtual. See this question.
但是,您可以通过将N
移到Handler
来使虚拟成员函数采用特定大小的std::array
:
However, you can make a virtual member function takes a std::array
of specific size by moving the N
out to the Handler
:
template <size_t N>
class Handler:
{
public:
virtual void handle(const std::array<char, N>& msg,
std::vector<boost::asio::const_buffer>& buffers) = 0;
};
或者简单地传递给定上下文的vector<char>
可能更有意义:
Or simply passing a vector<char>
, which given the context, could make more sense:
class Handler:
{
public:
virtual void handle(const std::vector<char>& msg,
std::vector<boost::asio::const_buffer>& buffers) = 0;
};
这篇关于std :: array作为虚函数中的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文