Я пытаюсь объединить идиому «Указатель в реализацию» (PIMPL) с аргументами вариального шаблона. Тем не менее, я сталкиваюсь с ошибкой линкера, которая, как я подозреваю, может быть связана с отсутствующим экземпляром.
Я пытаюсь объединить идиому «Указатель в реализацию» (PIMPL) с аргументами вариального шаблона. Тем не менее, я сталкиваюсь с ошибкой линкера, которая, как я подозреваю, может быть связана с отсутствующим экземпляром.[code]#pragma once
class Foo { public: Foo();
template int Method(Args&&... args);
private: class Impl; Impl* m_Impl; }; < /code> функциональный#include
#include "foo.h" #include "impl.h"
Foo::Foo() : m_Impl(new Foo::Impl()) { }
template int Foo::Method(Args&&... args) { return m_Impl->Method(std::forward(args)...); } < /code> функциональный#pragma once
#include "foo.h"
class Foo::Impl { public: int Method(int argc, char* argv[]); }; < /code> функциональный#include
#include "impl.h"
int Foo::Impl::Method(int argc, char* argv[]) { for (int i = 0; i < argc; ++i) std::cout