d2

Почему небольшая выборка ниже терпит неудачу под Linux64, но не под Windows32? module test; import std.string, std.stdio; void main(string[] args) { string a = "abcd=1234"; auto b = &a; auto Index = indexOf(*b, '='); if (Index != -1) *cast (char*) (b.ptr + Index) = '#'; wr...

Я пытаюсь написать простой hello world, используя привязки Derelict3 для SDL2. Я получаю ошибки во время связывания, которые я не видел раньше. module main; import derelict.sdl2.sdl; pragma(lib, "DerelictSDL2"); pragma(lib, "DerelictUtil"); pragma(lib, "dl"); int main(string[] args) { DerelictSDL2.loa...

Я изучал D и, в частности, очень взволнован его универсальными возможностями программирования. Делегаты-это замечательно, и, по-видимому, они полностью заменили указатели функций-членов, поэтому я застрял, когда хотел реализовать что-то вроде следующего: template <typename T> void DispatchMethodForAll...

Что делает scope в void foo(scope void* p) { } Значит? (я говорю не о scope(exit) или scope int x = 5;, а о scope, используемом в списке параметров.) ...

Я сталкиваюсь с очень раздражающей проблемой, касающейся транзитивного const в D. У меня есть код ниже: struct Slice(T) { T items; size_t start, length, stride; this(T items, size_t start = 0, size_t length = size_t.max, size_t stride=1) { if (length == size_t.max) { lengt...

Я пытаюсь использовать оператор slice для получения среза возвращаемого значения функции take из std.диапазон. Мой код: auto tempChunk = ['a', 'b', 'c', 'd']; auto a = tempChunk.take(3); writeln(a[0..2]); Как Взять!R в данном случае-это просто псевдоним для char [], я бы ожидал, что это будет компилироват...

Шаблонный механизм в C++ только случайно оказался полезным для метапрограммирования шаблонов. С другой стороны, D был разработан специально, чтобы облегчить это. И, по-видимому, это даже легче понять (или так я слышал). У меня нет опыта работы С D, но мне интересно, что вы можете сделать в D и не можете в C+...

Рассмотрим следующий код: class C { immutable(double[][]) data; this() { immutable(double[])[] blocks = []; immutable(double)[] block; foreach (x; 0 .. 5) { block = []; block ~= 0.1 * x; block ~= 1.0 * x; block ~= 10.0 * x; ...

я опубликовал это в группе новостей D несколько месяцев назад, но по какой-то причине ответ никогда не убеждал меня, поэтому я подумал, что задам его здесь. грамматика D, по-видимому, контекстно-свободная. грамматика C++, однако, не является (даже без макросов). (пожалуйста, внимательно прочитайте это!) к...