Я использую любопытный повторяющийся шаблон шаблона для создания общего указателя следующим образом (ниже). В Derived :: create (...) Visual Studio IntelliSense показывает доступные аргументы (Args && ... args). Как передать список аргументов конструктора производного класса в базу, чтобы IntelliSense показывал мне, что доступные аргументы (const std :: string & str, int i)?
#include <memory>
#include <string>
template<typename T>
class Base
{
public:
template<typename... Args >
static std::shared_ptr<T> create(Args&&... args)
{
return std::make_shared<T>(std::forward<Args>(args)...);
}
};
class Derived : public Base<Derived>
{
public:
Derived(const std::string &str, int i) {}
};
int main()
{
auto derived = Derived::create("text", 123);
}
make_shared
). - person jepio   schedule 08.02.2015