- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Engine::GetSingleton()->SetCallbacks(
new myname::Method<void(void),Application>(&Application::Render, boost::weak_ptr<Application>(application)),
new myname::Method<void(void),Application>(&Application::Update, boost::weak_ptr<Application>(application)),
0,
0,
new myname::Method<void(void),Application>(&Application::Init, boost::weak_ptr<Application>(application)),
new myname::Method<void(void),Application>(&Application::Cleanup, boost::weak_ptr<Application>(application))
);
pushkoff 05.02.2011 01:35 # 0
а шаблончики в принципе нормальные, только не понятно зачем они...
gegMOPO4 05.02.2011 10:39 # −1
Kirinyale 05.02.2011 14:14 # 0
gegMOPO4 05.02.2011 16:02 # 0
Kirinyale 05.02.2011 16:04 # 0
gegMOPO4 05.02.2011 16:11 # 0
guest 05.02.2011 13:07 # 0
Lure Of Chaos 05.02.2011 13:49 # +3
pushkoff 05.02.2011 18:53 # 0
а еще для того чтоб включить хидер с синглтоном, нужно включить все хидеры от которых он зависит, хотя в большинстве случаев человеку нужна какая нибудь захудалая функция, которая принимает инт и возвращает инт и сама по себе не имеет зависимостей...
сейчас пытаюсь заменить синглтоны на неймспейсы или структуры со статическими методами (оно немного удобнее), а все данные описывать в С++ файле, скрывая их от внешних глаз... получается лучше, но как-то не очень удобно, а у новичков от вида этого вообще батхерт случается, но избавление от лишних зависимостей и ускорение компиляции этого стоят...
CHayT 05.02.2011 19:15 # 0
Прикольно, только порядок инициализации статических членов не определён. Собираем приложение без ошибок и получаем вылет ещё до входа в main. Или непредсказуемое поведение.
CHayT 05.02.2011 20:40 # 0
guest 05.02.2011 21:12 # 0
Скорость компиляции - это конечно проблема, но это проблема видна ещё больше, если использовать шаблоны, так что в случае синглтонов это не проблема.
pushkoff 05.02.2011 21:15 # 0
gegMOPO4 06.02.2011 19:13 # −1
Kirinyale 05.02.2011 14:16 # 0
CHayT 05.02.2011 14:39 # 0
Kirinyale 05.02.2011 15:14 # 0
class FunctorBase
{
public:
virtual operator() = 0;
};
template <typename T>
class FunctorTyped : public FunctorBase
{
T f_;
public:
Functor(const T& f): f_(f) {}
virtual operator() { f_(); }
};
template <typename T>
inline FunctorTyped<T> functor(const T& f)
{
return FunctorTyped<T>(f);
}
...
Engine::GetSingleton()->SetCallbacks(
functor(boost::bind(&Application::Render , application)),
functor(boost::bind(&Application::Update , application)),
0,
0,
functor(boost::bind(&Application::Init, application)),
functor(boost::bind(&Application::Cleanu p, application))
);
CHayT 05.02.2011 15:44 # 0
Kirinyale 05.02.2011 15:46 # 0
pushkoff 05.02.2011 18:55 # 0
Kirinyale 05.02.2011 19:17 # 0
CHayT 05.02.2011 19:22 # 0
Kirinyale 05.02.2011 19:24 # 0
pushkoff 05.02.2011 21:17 # 0
pushkoff 05.02.2011 18:56 # 0
Kirinyale 05.02.2011 19:17 # 0
miheich 25.08.2021 06:50 # 0
ISO 08.09.2022 22:03 # 0