Comments: |
From: | (Anonymous) |
Date: | March 24th, 2014 - 08:57 am |
---|
| | | (Link) |
|
То, что гтк3 говно, уже даже не новость, а истина. Все приличные люди с него убегают.
From: | (Anonymous) |
Date: | March 24th, 2014 - 10:05 am |
---|
| | | (Link) |
|
digitalmars.D.learn
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 11:39 am |
---|
| | | (Link) |
|
а просто ответить впадлу, ога?
what is the problem to call function in first line of main ?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 11:47 am |
---|
| | | (Link) |
|
потому что. поясняю: для няшной сишечки у меня есть няшный модульчик «command console». при помощи няшных макросиков там делается вот так, например:
static int goobers = 0;
CMDCON_VAR_INT(goobers, &goobers, «internal debug mode var», CMDCON_FLAGS_NONE)
…
CMDCON_CMD(god, «toggle god mode») {
…
}
естественно, эти макросы можно писать в любом месте вне функций. и не надо заниматься еблей с пляской, тупо копируя регистрации куда-то, или собирая регистрации в местах, отдалённых от. где удобно — там и объявил. «под капотом» автогенерируются функции с __attribute__((constructor)), которые автоматически выполняются до main() и регистрируют всё нужное. в цпп почти то же самое можно сделать без атрибутов, тупо объявляя статические переменные какого-нибудь хитрого класса с хитрыми конструкторами. попытка провернуть то же самое в D приводит к тому, что компилятор пытается выполнить код конструктора на этапе компиляции — и закономерно фэйлит. я не верю, что такую удобную фичу в D уебали. если да — то резко беру все свои радости по поводу D назад и возвращаюсь на няшную сишечку.
читаем внимательно документацию: http://dlang.org/declaration.htmlThe Initializer for a global or static variable must be evaluatable at compile time. Whether some pointers can be initialized with the addresses of other functions or data is implementation defined. Runtime initialization can be done with static constructors. http://dlang.org/class.html#StaticConstructorA static constructor is a function that performs initializations of thread local data before the main() function gets control for the main thread, and upon thread startup. Static constructors are used to initialize static class members with values that cannot be computed at compile time.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 12:18 pm |
---|
| | | (Link) |
|
а, блядь. что-то я про статические конструкторы пропустил. щаз попробую, tnx. дохуя инфы пытался в голову вбить, что-то через ухо вытекло.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 12:28 pm |
---|
| | | (Link) |
|
хм. жаль, параметры передавать нельзя. сука, неудобно. но всё равно придётся шаблонную магию рисовать. tnx, похоже, что работает.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 12:36 pm |
---|
| | | (Link) |
|
а вот залупа. это, блядь, реально static constructors, оно вызывается один раз для одного типа, и при этом не имеет this. хотелось совсем не этого. а получается, что на каждую команду надо новую структуру миксинить. в общем, не то, чтобы совсем мегапроблема, но как-то неизящно.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 12:42 pm |
---|
| | | (Link) |
|
хм. а вот такого, кажется, всё равно не получится:
CMDCON_CMD(name) { … }
впрочем, я про шаблоны ещё не всё прочитал, возможно, как-то можно.
а что это вообще значит ? в смысле, вот, например, написано
CMDCON_CMD(ketmar) { ... }
что там вместо многоточия, и зачем это ? я пока не въехал
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 11:29 pm |
---|
| | | (Link) |
|
это регистрация консольной команды 'ketmar', в скобках — обычное тело функции.
From: | alamar |
Date: | March 24th, 2014 - 05:25 pm |
---|
| | | (Link) |
|
Всегда было какашкой. Только Qt, только хардкор.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 11:30 pm |
---|
| | | (Link) |
|
тоже срань. Qt кончилась на Qt4.
From: | alamar |
Date: | March 25th, 2014 - 01:18 am |
---|
| | | (Link) |
|
Охъ, чувствую себя пожилым, для меня Qt4-то - новая странная хрень.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 25th, 2014 - 01:20 am |
---|
| | | (Link) |
|
там, тащемта, настолько хорошая документация и логичный код, что оно весьма быстро становится «старым знакомым». я когда своего im-клиента начинал писать — тоже не особо опыта с Qt имел. ничего, в процессе всё оказалось культурно и красиво.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 25th, 2014 - 01:21 am |
---|
| | | (Link) |
|
а кутэ5 — это уже говнокуэмэль и прочая унылая хипстерота.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | March 24th, 2014 - 11:58 pm |
---|
| | | (Link) |
|
ага. у них ещё зуд свои «улучшения» во вторую версию «бэкпортить». поэтому я и вторую прекратил обновлять, а то мало ли, что там «улучшить» захотят эти ебанашки. | |