Объединение указателя на реализацию (PIMPL) идиома и вариационные шаблоны аргументы [Duplicate]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Объединение указателя на реализацию (PIMPL) идиома и вариационные шаблоны аргументы [Duplicate]

Сообщение Anonymous »

Я пытаюсь объединить идиому «Указатель в реализацию» (PIMPL) с аргументами вариального шаблона. Тем не менее, я сталкиваюсь с ошибкой линкера, которая, как я подозреваю, может быть связана с отсутствующим экземпляром.

Код: Выделить всё

#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 

Подробнее здесь: [url]https://stackoverflow.com/questions/79723747/combining-pointer-to-implementation-pimpl-idiom-and-variadic-template-argument[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»