Я когда-то сражался с компилятором. Вот мой код:Boost mpl list и auto_test_case_template ошибка компиляции
#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);
}
Здесь ошибка я получаю:
error: reference to non-static member function must be called:
message.SetSomething<1>(20);
теперь я получаю эта ошибка ошибка: нет соответствующей функции-члена для вызова «SetSomething» –
@JonathonHill, и вы создали SetSomething public? –
Да, я сделал :(Вы пытались скомпилировать этот код? –