Описание тега d2
D2 (версия 2) является преемником начальной версии языка программирования D, разработанной Уолтером Брайтом и с 2006 года Андреем Александреску.
2
ответа
Собирает ли функция чистого и nothrow, которая не передает память, автоматически мусор?
Предположим, у вас есть функция в D, которая pure а также nothrow и его тип возвращаемого значения и типы аргумента не могут пропускать никакую вновь выделенную память. Могу ли я добавить @nogc приписать этой функции тогда? Если нет, есть ли вероятн…
22 дек '15 в 23:38
2
ответа
Проверьте, содержит ли массив элемент в D
Для ассоциативных массивов мы можем написать if( elem in array) { .. } что мы пишем для простого массива? Я хочу написать подтверждение, например enforce(input in [10,20,40]);
02 июн '14 в 12:01
1
ответ
Почему примитивы диапазона массива потребляют свои источники?
Примитивы диапазона, которые предназначены для встроенных массивов, потребляют свои источники, но можно легко спроектировать систему диапазона, которая скорее будет основана на .ptr источника (на первый взгляд это более гибко). struct ArrayRange(T) …
24 авг '15 в 08:13
3
ответа
Последовательный порт или USB-порт, используя D?
Я новичок в использовании языка программирования D, и мне было интересно, может ли D использовать последовательный порт или порт USB?
17 июл '11 в 22:11
2
ответа
d2: разница между распределением массива через new и назначением литерала массива
Рассмотрим следующий код: 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; blocks ~= block; } this.d…
27 мар '12 в 20:22
4
ответа
Y-комбинатор в D?
Я пытаюсь лучше изучить Y-комбинатор (вроде как я это понимаю на Схеме) и внедрить его в D 2.0, и у меня довольно плохо получается: auto fact = delegate(uint delegate(uint) recurse) { return delegate(uint n) { return n > 1 ? n * recurse(n - 1) : …
04 авг '11 в 07:44
1
ответ
Перегрузка оператора D
import std.stdio; struct Vector2 { float x, y; this (float x, float y) { this.x = x; this.y = y; } // vector2 * number Vector2 opBinary(string op)(const float rhs) if (op == "*") { auto result = this; this *= rhs; return this; } // number * vector2 …
04 июн '11 в 14:42
1
ответ
Как связать этот код C с D?
Как этот C должен быть преобразован в D: typedef const gchar* (*GModuleCheckInit) (GModule *module); typedef void (*GModuleUnload) (GModule *module); Это правильно? alias const gchar* function( GModule *module ) GModuleCheckInit; alias void function…
05 ноя '11 в 14:28
2
ответа
Segfault в D для слишком больших входов
Следующая программа D аварийно завершает работу для входа 939971 или выше, но не для ввода 939970 или ниже: #!/usr/bin/rdmd --shebang -w -d-debug --relocation-model=pic import std.stdio; import std.bigint; import std.conv; import std.array; //extern…
24 ноя '13 в 06:33
1
ответ
Решение в Java выражается в D (отражение)
Я переопределяю Java-программу на D. Я использовал фабричный шаблон, то есть из данных "myclass" "5.3,6,8,10" я использую рефлексию для вызова конструктора. myclass(5.3 ,6,8,10); Как я могу решить ту же проблему в D, то есть, учитывая имя класса и п…
22 июн '11 в 09:08
2
ответа
Тестирование D-программ на FreeBSD для компиляции на OSX
У меня никогда не было компьютера Apple. Некоторое время я запускаю Ubuntu на своем ноутбуке и пишу много программных кодов на D2. Все они являются терминальными приложениями, графического интерфейса нет. Сейчас я планирую купить Macbook, но я не ув…
07 янв '14 в 12:15
1
ответ
Команда CDB для установки точки останова на основе номера строки
Существует ли набор команд CDB для установки точки останова на основе номера строки? Кажется, что нет "прямого". На самом деле кажется, что знания ЦКБ попадают в черную дыру, и все труднее и труднее находить ресурсы в Интернете. Моя настройка CDB cd…
06 ноя '14 в 09:27
1
ответ
Проблема с DMD на OSX
Я пытался установить DMD так точно, следуя советам, доступным на этой странице: http://dlang.org/dmd-osx.html. Тем не менее, когда у меня возникает ошибка при попытке создать файл.d: Вот мой hello.d import std.stdio; void main() { writeln("hello wor…
17 дек '13 в 02:25
2
ответа
Позднее статическое связывание в d
Я работаю над общим шаблоном класса коллекции, скажем, List(T) где я хотел бы иметь возможность делать что-то вроде поздней статической привязки php. Лучше всего это проиллюстрировать упрощенным примером кода. Этот код прекрасно компилируется, как и…
12 авг '13 в 22:12
1
ответ
Что происходит, когда я звоню новым?
Что произойдет, если я вызову new (для массивов и / или объектов) в DMD? Например int[] data = new int[number]; или же new MyObject();? Где я могу найти источники материала, который происходит в фоновом режиме?
26 май '14 в 15:36
1
ответ
Является ли ref const X таким же, как const ref X в D?
Совсем недавно здесь обсуждалось, как странно const находится в D с точки зрения размещения (справа или слева от имени функции и т. д.). Интересно, если ref const X такой же как const ref X в параметре функции? обе версии компилируются в моем тестов…
16 июн '14 в 18:29
1
ответ
Передать диапазон диапазонов в функцию с переменным числом
Документация Фобоса показывает следующий пример диапазонов, переданных в функцию с переменным числом int[] a = [ 1, 2, 4, 5, 7, 9 ]; int[] b = [ 0, 1, 2, 4, 7, 8 ]; int[] c = [ 0, 1, 4, 5, 7, 8 ]; assert(equal(setIntersection(a, a), a)); assert(equa…
02 июн '11 в 11:10
1
ответ
Почему я не могу использовать std.algorithm.count с функцией предиката
Следующий код не компилируется: assert("(((())))()()()()))".count!(c => c.among!('(', ')')) > 0); С сообщением об ошибке: "Error: template std.algorithm.searching.count cannot deduce function from argument types !((c) => c.among!('(', ')'))…
09 окт '15 в 20:22
1
ответ
Выводим тип аргумента делегата с неизвестным числом аргументов с типизированной информацией
Если вы определяете функцию, которая принимает делегата, D может вводить аргументы делегата при вызове этой функции. Так что, если я напишу функцию с подписью: void foo(void delegate(int,string) dlg) Я могу назвать это используя: foo((a,b){}); и D с…
18 мар '13 в 14:49
1
ответ
D и т. Д. Примеры
D, будучи менее известным языком группы, очень мало подходит для библиотек. Я пытаюсь загрузить файл, и способ, которым я вижу, как сделать это с DMD 2 и phobos, - с помощью etc.c.curl, но... Curl очень сложно использовать. И так как нигде не могу н…
21 авг '11 в 18:51