我一直在与编译器争夺一段时间。这是我的代码:
#include <boost/test/unit_test.hpp>
#include <boost/mpl/list.hpp>
namespace MyMessageNamespace
{
class ParticularMessage
{
template <int N>
void SetSomething(int myValue) {};
};
}
template <typename MyMessageT>
struct MyMessage
{
using MyMessageType = MyMessageT;
};
using MyMessages = boost::mpl::list<MyMessage<MyMessageNamespace::ParticularMessage>>;
BOOST_AUTO_TEST_CASE_TEMPLATE(MyTestCase, MyMessage, MyMessages)
{
typename MyMessage::MyMessageType message;
message.SetSomething<1>(20);
}
这是我得到的错误:
错误:必须调用对非静态成员函数的引用:message.SetSomething&lt; 1&gt;(20);