170 похожих чатов

Блин, там если чуть изменить - уже не собирается.

Такое можно починить как-нибудь?

#include <iostream>
#include <cstdlib>
#include <typeinfo>
#include <memory>


template<typename IdClass, typename TaskClass, template <typename> class LoggerClass>
class BigVertex
{
private:
IdClass i;
TaskClass t;
public:
void bar(const TaskClass & t){ LoggerClass<TaskClass>::Log(t); };
};

template<typename BigGraphClass>
class HttpHandler
{
BigGraphClass b;

typename BigGraphClass::TaskClassT t;

typedef BigVertex<
typename BigGraphClass::IdClassT,
typename BigGraphClass::TaskClassT,
typename BigGraphClass::LoggerClassT
> MyBigVertex;

std::shared_ptr<MyBigVertex> lp_begin;

public:
void handle(){ lp_begin.reset(new MyBigVertex()); lp_begin->bar(t); }
};

template<typename BigGraphClass>
class HttpServer
{
private:
HttpHandler<BigGraphClass> h;
public:
void xxx(){ h.handle(); }
};

template<typename IdClass, typename TaskClass, template <typename> class LoggerClass>
class BigGraph
{
public:
typedef IdClass IdClassT;
typedef TaskClass TaskClassT;
typedef LoggerClass<TaskClass> LoggerClassT;

private:
BigVertex<IdClass, TaskClass, LoggerClass> v;

public:
void foo(const TaskClass & t){ v.bar(t); };
};

template<typename TaskClass>
class Logger
{
void Log(const TaskClass & t){ std::cout << t << std::endl; };
};

int main(int argc, char** argv)
{
HttpServer<BigGraph<int,int,Logger>> h;
h.xxx();
return 0;
}

1 ответов

18 просмотров
Tim-Brunko Автор вопроса

таки починил) если кому интересно: #include <iostream> #include <cstdlib> #include <typeinfo> #include <memory> template<typename IdClass, typename TaskClass, typename LoggerClass> class BigVertex { private: IdClass i; TaskClass t; public: void bar(const TaskClass & t){ LoggerClass::Log(t); }; }; template<typename BigGraphClass> class HttpHandler { BigGraphClass b; typename BigGraphClass::TaskClassT t; typedef BigVertex< typename BigGraphClass::IdClassT, typename BigGraphClass::TaskClassT, typename BigGraphClass::LoggerClassT > MyBigVertex; std::shared_ptr<MyBigVertex> lp_begin; public: void handle(){ lp_begin.reset(new MyBigVertex()); lp_begin->bar(t); } }; template<typename BigGraphClass> class HttpServer { private: HttpHandler<BigGraphClass> h; public: void xxx(){ h.handle(); } }; template<typename IdClass, typename TaskClass, template <typename> class LoggerClass> class BigGraph { public: typedef IdClass IdClassT; typedef TaskClass TaskClassT; typedef LoggerClass<TaskClass> LoggerClassT; private: BigVertex<IdClass, TaskClass, LoggerClass<TaskClass>> v; public: void foo(const TaskClass & t){ v.bar(t); }; }; template<typename TaskClass> struct Logger { static void Log(const TaskClass & t){ std::cout << t << std::endl; }; }; int main(int argc, char** argv) { HttpServer<BigGraph<int,int,Logger>> h; h.xxx(); return 0; }

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта