Size: a a a

2021 March 27

Е

Евгений in dlang.ru
Константин Пунш
и pragma(msg, ...) не будет работать внутри цикла
будет
источник

КП

Константин Пунш... in dlang.ru
только не для всех элементов
источник

КП

Константин Пунш... in dlang.ru
И все ctfe также не будет работать
источник

Е

Евгений in dlang.ru
Константин Пунш
И все ctfe также не будет работать
если перебирать параметры шаблона, то все будет работать
источник

КП

Константин Пунш... in dlang.ru
Евгений
если перебирать параметры шаблона, то все будет работать
Ну вот не во всех случаях
источник

КП

Константин Пунш... in dlang.ru
void main()
{
 foreach(a; ["90", "120"]){
   enum c = mixin(a);
   pragma(msg, c + 10);
 }
}
test.d(4): Error: variable `a` cannot be read at compile time
test.d(5):        while evaluating `pragma(msg, c + 10)`
источник

Е

Евгений in dlang.ru
Константин Пунш
Ну вот не во всех случаях
Не во всех, да.
источник

Е

Евгений in dlang.ru
Константин Пунш
void main()
{
 foreach(a; ["90", "120"]){
   enum c = mixin(a);
   pragma(msg, c + 10);
 }
}
test.d(4): Error: variable `a` cannot be read at compile time
test.d(5):        while evaluating `pragma(msg, c + 10)`
Вот так будет:
void main()
{
 foreach(a; AliasSeq!("90", "120")) {
   enum c = mixin(a);
   pragma(msg, c + 10);
 }
}
источник

Е

Евгений in dlang.ru
Но таки да static foreach в данном случае удобнее.
источник

Е

Евгений in dlang.ru
Собсно говоря я бы задепрекейтил мимикрию foreach под static foreach, будь моя воля.
источник

Е

Евгений in dlang.ru
Ну а по поводу дополнительных фигурных скобок для создания скоупа - очевидно же. Я давно так делаю.
источник

g

gavr in dlang.ru
Alex Medvednikov says...
источник

e

e in dlang.ru
gavr
Alex Medvednikov says...
Это к рептилоидам отсылка типа, из визитеров?
источник

КП

Константин Пунш... in dlang.ru
енто работает!
import sorrel;
import std.stdio;

private struct WindowSomeBind{
 int test;
 static int a = 0;
 void onCreate(WindowInternal* w)
 @event!q{
   callAll!"acceptNumFromBind"(me.test);
 }
 {
   test = a++;
   writeln("start bind (ogl example)");
 }
}

private struct WindowExtra{
 void onCreate(WindowInternal* w){
   writeln("start user defined");
 }
 void acceptNumFromBind(int handle){
   writeln("LOOK! ", handle);
 }
}

void main(){
 sorrel.window.init;
 auto win = Window!(WindowSomeBind, WindowExtra)(800, 600);
 EventLoop.start;
}
источник

КП

Константин Пунш... in dlang.ru
Все ивенты в ct определены
источник

КП

Константин Пунш... in dlang.ru
Константин Пунш
Все ивенты в ct определены
Но без while(getMsg)...if(bla bla)break;...
источник

КП

Константин Пунш... in dlang.ru
Константин Пунш
Все ивенты в ct определены
И не указатели на функции, которые в рантайме
источник

КП

Константин Пунш... in dlang.ru
Все вот это компилятор может просто заинлаинить, некоторые сравнения в switch'e убрать, ну и это очень гибко
источник

КП

Константин Пунш... in dlang.ru
Я могу буквально писать бинды ко всяким GAPI не лазя в ядро библиотеки
источник

e

e in dlang.ru
Константин Пунш
Все вот это компилятор может просто заинлаинить, некоторые сравнения в switch'e убрать, ну и это очень гибко
Как будто если обмазаться указателями на функции, то скажем llvm не заинлайнит код. Ты проверял? Я у себя недо-оопею нахуякал на указателях на функции, а llvm в итоге выпилил эту оопею, свернув код до результата итоговой функции.
источник