top
logo


Вышла версия 2.066 компилятора языка D PDF Печать E-mail
19.08.14 01:00

Вышла версия 2.066 кроссплатформенного компилятора языка программирования D: Digital Mars D (DMD). Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков, при этом заимствуя некоторые полезные возможности динамических языков в области эффективности разработки и обеспечения безопасности. Например, предоставляется поддержка ассоциативных массивов, косвенное определение типов, автоматическое управление памятью, средства параллельного программирования и т.п.

Краткий список изменений:

  • Изменения в компиляторе DMD и языке:
    • Опция "-w" теперь выводит предупреждение про неиспользованное значение, возвращаемое pure-функцией. Так как pure-функции не могут иметь побочных эффектов, то подобный код, скорее всего, возник из-за невнимательности.
    • Опция "-noboundscheck" объявлена устаревшей и заменена на опцию "-boundscheck={on|safeonly|off}". Это позволяет гибко управлять проверками на выход из диапазона массивов в режиме -release (раньше включить проверку на выход из диапазона для relese-режима было невозможно).
    • Добавлена опция "-vgc", которая выводит места, где программа неявно выделяет память (это могут быть изменения размеров динамических массивов, объединения строк и т.п.). Опция использует новый атрибут "@nogc" для анализа.
    • Добавлена опция "-vcolumns", которая в диагностических сообщениях включает вывод не только номера строки, но и позиции в строке.
    • Добавлена опция "-color", которая расцвечивает диагностические сообщения об ошибках и предупреждения.
    • Добавлена языковая конструкция extern (C++, namespace), позволяющая использовать прямые вызовы функций C++ из пространств имён.
    • Добавлена возможность перегружать оператор многомерного слайсинга (multi-dimensional slicing).
    • Добавлен новый трэйт: __traits(getFunctionAttributes). Он позволяет получить атрибуты функции, такие, как "pure", "nothrow", "@safe" и пр.
    • Улучшен механизм автоматического определения типов в шаблонах. Шаблон вида "void foo(T)(T[] arr, T elem)" теперь может быть вызван как "foo(a, 1)", если a определено как "short[] a". Раньше было необходимо явно приводить 1 к типу short.
    • Операции Read-Modify-Write на разделяемых (shared) переменных объявлены устаревшими. Вместо "foo += 2" теперь следует использовать "atomicOp!"+="(foo, 2)".
    • Добавлена поддержка конструкторов для встроенных типов: "auto foo = long(1)".
  • Изменения в стандартной библиотеке
    • В модуле core,time операция Duration.get объявлена устаревшей и заменена на универсальный шаблон Duration.split, позволяющий более гибко управлять получением нужных частей временного промежутка. Duration.get всегда вычисляла все части (недели, дни, часы, минуты, секунды и т.д.), но возвращала только запрошенные; Duration.split вычисляет только то, что запросил пользователь. Вдобавок Duration.split может возвращать значения как в out-переменных, так и структуру с запрошенными полями.
    • Некоторые свойства встроенных типов заменены на библиотечные функции. Благодаря универсальному синтаксису вызова функций программисту не надо исправлять код. Такая замена позволяет более гибко управлять деталями реализации встроенных типов - динамических массивов и ассоциативных массивов.
    • Типы-ключи ассоциативных массивов теперь нуждаются в операции opEqu (сравнение на идентичность), а не в операции opCmp (сравнение "больше-меньше-равно").
  1. Главная ссылка к новости (http://forum.dlang.org/thread/lstig7$utn...)
  2. OpenNews: В GDC, компилятор для языка D, добавлена поддержка архитектуры ARM
  3. OpenNews: Вышли DCD 0.3.0 и DScanner 0.1.0, инструменты для разработчиков на языке D
  4. OpenNews: Компания Google расширила действие инициативы по повышению безопасности свободного ПО
  5. OpenNews: Для текстовых редакторов KDE и IDE KDevelop представлена поддержка языка D
  6. OpenNews: Вышла новая версия dmd 2.063, компилятора для языка D
Автор новости: anonymous
Тип: Программы
Ключевые слова: dlang, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.1, Аноним, 10:23, 19/08/2014 [ответить] [смотреть все] –5 +/
Надо на D systemd переписать - больше линукс инноваций ... весь текст скрыт [показать]
 
1.2, Resonance, 10:26, 19/08/2014 [ответить] [смотреть все]  
+1 +/
Единственный шанс сделать язык нужным - портировать на Android/iOS. Нативить на плюсах не в кайф.
 
  2.3, Аноним, 10:33, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  –4 +/
У D практически не осталось явных преимуществ перед C Сегодня C 14 вышел, ещ... весь текст скрыт [показать] [показать ветку]
 
  3.4, Resonance, 10:50, 19/08/2014 [^] [ответить] [смотреть все]  +6 +/
> У D практически не осталось явных преимуществ перед C++. Сегодня C++14 вышел,
> ещё дальше толкнул развитие языка.

Ну вот тут не соглашусь, пакетная организация кода чего только стоит в D, а так же не нужно разделять на .cpp и .h исходники. Да и вообще С++ слишком переусложнен. Вот пример кода с хабра:
int& (*fpi)(int*) = [](auto* a) -> auto& { return *a; }; // OK
Все понятно?

 
  4.6, nib, 11:33, 19/08/2014 [^] [ответить] [смотреть все]  +2 +/
а чем тут можно напугать ... весь текст скрыт [показать]
 
4.7, Сука, 11:34, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/ 4.8, RazrFalcon, 11:36, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/image  4.9, Пиони, 11:44, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
Это непонятно только тем, кто на C никогда толком и не писал ... весь текст скрыт [показать]
 4.10, Наноним, 11:49, 19/08/2014 [^] [ответить] [смотреть все]  +/
Кто ни будь, разтолкуйте, интересно стало ... весь текст скрыт [показать]
 
  5.12, Пиони, 12:09, 19/08/2014 [^] [ответить] [смотреть все]  +4 +/
Слева - переменная fpi, которая является указателем на функцию, принимающую в ка... весь текст скрыт [показать]
 
5.13, Аноним, 12:12, 19/08/2014 [^] [ответить] [смотреть все]  –2 +/
указатель на функцию принимающую указатель на int и возвращающую ссылку на int к... весь текст скрыт [показать]
 
  6.15, Аноним, 12:18, 19/08/2014 [^] [ответить] [смотреть все]  +2 +/
pthreads лежат гораздо ниже уровнем, чем C 11 threads Первыми пользуются либо ... весь текст скрыт [показать]
 
6.16, Пиони, 12:25, 19/08/2014 [^] [ответить] [смотреть все]  +4 +/
Привет чудакам, которые любят писать везде тип, а потом много рефакторить, от чу... весь текст скрыт [показать]
 
  7.71, Аноним, 07:06, 20/08/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Привет любителям auto, пишущим такой код, в который без IDE, всплывающими подска... весь текст скрыт [показать]
 
6.21, arisu, 12:38, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
google dlang voldemort types вперёд сделать это без auto ... весь текст скрыт [показать]
 
  7.32, Crazy Alex, 14:35, 19/08/2014 [^] [ответить] [смотреть все]  +/
Тут до людей еще не дошло, что auto - это механизм абстракции Что интересно, в ... весь текст скрыт [показать]
 
  8.40, Vkni, 15:30, 19/08/2014 [^] [ответить] [смотреть все]  +/
Это вывод типов для бедных В OCaml е аналог функции с учётом того, что ссылок ... весь текст скрыт [показать]
 
  9.42, Crazy Alex, 17:04, 19/08/2014 [^] [ответить] [смотреть все]  +/
А что такое вывод типов Это и есть механизм абстракции Когда всё, что мне надо... весь текст скрыт [показать]
 
  10.43, Vkni, 17:15, 19/08/2014 [^] [ответить] [смотреть все]  +/
Угу Кстати, auto - это те же шаблоны, только сделанные в другом виде - Т о ... весь текст скрыт [показать]
 
  11.62, arisu, 04:28, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
всё на свете шаблоны, только в разных видах.
 
4.28, ями, 14:12, 19/08/2014 [^] [ответить] [смотреть все]  +/
Господи, шо это ... весь текст скрыт [показать]
 4.48, Аноним, 21:14, 19/08/2014 [^] [ответить] [смотреть все]  +/
это не C , а C На C будет как-то так std function int int fpi ... весь текст скрыт [показать]
 
  5.51, Аноним, 22:51, 19/08/2014 [^] [ответить] [смотреть все]  +/
Твоя ирония понятна, собрат аноним, но в С нет ни замыканий, ни вывода типов ... весь текст скрыт [показать]
 
    7.79, Аноним, 11:15, 20/08/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
В этой статье нет ничего о том, как симулировать замыкания в С 8212 только о ... весь текст скрыт [показать]
 
4.57, Аноним, 00:45, 20/08/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Плохой пример Откройте книжку Шаблоны С - именно они причина, почему Александ... весь текст скрыт [показать]
 
  5.70, arisu, 05:15, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
но всё это перекрывается тем, что на C++ уже написано огромное количество кода, и переписать его на другом языке часто попросту нереально по трудозатратам. а вот постепенно чистить и улучшать, используя новые фичи C++ — вполне возможно.
 
3.18, chinarulezzz, 12:34, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
c пухнет, а не развивается ... весь текст скрыт [показать]
 3.20, arisu, 12:37, 19/08/2014 [^] [ответить] [смотреть все]  +5 +/
ага кроме отсутствия идиотского legacy и нормальной системы шаблонов, а не того... весь текст скрыт [показать]
 
  4.44, Аноним, 17:24, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
Теперь инфернальные ужасы C и легаси есть и в D - ведь можно подцеплять С ко... весь текст скрыт [показать]
 
  5.61, arisu, 04:27, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> Теперь инфернальные ужасы C++ и легаси есть и в D - ведь
> можно подцеплять С++ код :).

не весь, шаблоны нельзя пока. Уолтер по этому поводу думает, но дело непростое.

 
3.45, Yaisis, 18:47, 19/08/2014 [^] [ответить] [смотреть все]  +/
Сколько бы С не развивали, основной его синтаксис уже вряд ли изменится Обрас... весь текст скрыт [показать]
 3.49, Kodir, 21:27, 19/08/2014 [^] [ответить] [смотреть все]  +/ Жирный плюсовый троль, ты хоть Ди в глаза-то видел??
 2.19, arisu, 12:36, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  +4 +/ 
  3.37, Аноним, 15:15, 19/08/2014 [^] [ответить] [смотреть все]  +/
Смешно везде этот фейсбук пихают То PHP с фейсбучными ускорялками, то вот D Не... весь текст скрыт [показать]
 
  4.39, arisu, 15:18, 19/08/2014 [^] [ответить] [смотреть все]  +/
ок не нужен проходи мимо ... весь текст скрыт [показать]
 
  5.59, Аноним, 04:16, 20/08/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
 
1.11, yet another anonymous, 12:05, 19/08/2014 [ответить] [смотреть все]  +/ Позиционирование D какое-то мутное.

Если C --- достаточно низкоуровневый язык, C++ --- мультипарадигменный, позволяющий выбирать уровень абстракции/модель в зависимости от задачи, то D --- "ещё один язык с C-подобным синтаксисом".

 
  2.14, Пиони, 12:16, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  +3 +/
 
2.22, arisu, 12:39, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  –2 +/
ценное экспертное мнение от знатока ди, чо хоть 171 приветмир 187 -то сделал... весь текст скрыт [показать] [показать ветку]
 
  3.36, yet another anonymous, 15:09, 19/08/2014 [^] [ответить] [смотреть все]  +/
Именно так я не нашел ответа на зачем мне нужен D для каких задач D будет эфф... весь текст скрыт [показать]
 
  4.38, arisu, 15:16, 19/08/2014 [^] [ответить] [смотреть все]  +/
перевожу 171 изучать я ничего не хочу, чем этот ваш автомобиль лучше лошади ... весь текст скрыт [показать]
 
2.24, Mihail Zenkov, 13:40, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  +1 +/ 
  3.25, arisu, 13:47, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
в общем-то, это и была оригинальная идея повыкидывать legacy и сделать нечто вр... весь текст скрыт [показать]
 
  4.46, anonymous, 19:14, 19/08/2014 [^] [ответить] [смотреть все]  +/
>> Скорее аналог C++ с более адекватным синтаксисом.
> а потом туда пришёл Александреску и добавил:
> «and templates done right».

Я не пойму, ты сейчас серьёзно пишешь или иронизируешь?

 
  5.63, arisu, 04:35, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> Я не пойму, ты сейчас серьёзно пишешь или иронизируешь?

совершенно серьёзно. и, в общем-то, по фактам: оно примерно так и было. одна из мегафич D — действительно удобные шаблоны, которые не выглядят белибердой, которые удобно использовать, которые можно не только писать, но и читать без труда. также Александреску ответственен за довольно большую часть std.algorithm (и не только).

а начиналось у него всё с того, что: «я попробую, вдруг интересное что?» мне сейчас лень статью об этом искать, но по-моему, она где-то в доббсе была.

 
1.17, Anonym0uz, 12:31, 19/08/2014 [ответить] [смотреть все]  +/ К сожалению самолёт получился слишком тяжёлым. А так хорошо всё начиналось…
  1.26, анон, 13:56, 19/08/2014 [ответить] [смотреть все]  +/ в этом вашем цпп есть аналог mixin-ов?
 
  2.27, arisu, 14:01, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  +1 +/
 
  3.29, анон, 14:16, 19/08/2014 [^] [ответить] [смотреть все]  +/
ну лицемеры они такие в цпп нет и доли интроспекции d отвратные шаблоны вообще... весь текст скрыт [показать]
 
  4.30, arisu, 14:22, 19/08/2014 [^] [ответить] [смотреть все]  +/
дык на то Александреску в ди и пришёл нормальные шаблоны сделать и ему таки уд... весь текст скрыт [показать]
 
    6.64, arisu, 04:39, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
>> дык на то Александреску в ди и пришёл: нормальные шаблоны сделать. и ему таки удалось.
> А что, Александреску правда в D ушел?

не то, чтобы «ушёл с концами»: C++ он не бросил, пишет статьи, выступает на конференциях. но в то же время он весьма активный разработчик на D, написал практически весь костяк std.algorithm (это такой дальний родственник алгоритмов из STL, только использует ranges) и ещё много всякой шаблонной магии в D.

книгу, опять же, написал: «The D Programming Language» (TDPL). как и полагается — отличная книга. её даже перевели на русский, и не так уж плохо, скорее даже хорошо.

 
  7.72, anonymous, 10:09, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> не то, чтобы «ушёл с концами»: C++ он не бросил, пишет статьи, выступает на конференциях.

Хорошо, что ушел. Плохо, что не бросил C++.

"Не читайте Александреску." (C) А. Степанов.

 
3.33, Crazy Alex, 14:40, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
Ну, constexpr уже весьма близок к ctfe А вот более гибкая объектная система за ... весь текст скрыт [показать]
 
  4.34, arisu, 14:46, 19/08/2014 [^] [ответить] [смотреть все]  +/
по-моему, alias this 8212 это какая-то невнятная мерзопакость чемодан без ру... весь текст скрыт [показать]
 
  5.41, Crazy Alex, 16:59, 19/08/2014 [^] [ответить] [смотреть все]  +/
А за что так Как по мне - удобная и контролируемая альтернатива множественному ... весь текст скрыт [показать]
 
  6.65, arisu, 04:44, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> А за что так?

как минимум потому, что alias this допускается только одно. то есть, никакая это не альтернатива, а именно чемодан без ручки.

если уж так надо — есть интерфейсы, их можно присобачивать к классу много. а лучше вообще писать на шаблонах, которые тупо проверяют наличие нужных методов, и тогда совершенно пофиг на типы и наследования: нужные методы есть? ок, поехали. ranges, например.

единственное, что даёт alias this и чего нельзя добиться иначе (и то не всегда, есть нюансы) — неявное преобразование типов. то есть, когда класс A можно использовать как класс B, хоть они и не особо родственники. я, впрочем, считаю, что это лишняя фича, только затрудняющая понимание кода.

 
  7.83, Crazy Alex, 14:39, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
То, что alias this единственный - насколько я помню, бага, которая есть в багзилле.

А интерфейсы (хоть формальные, хоть проверки через is и тому подобное) - это хорошо, но тогда надо для всего подряд ляпать прокси, если у тебя данный интерфейс реализуется отдельным готовым объектом, от которого ты не хочешь наследоваться. Как примитивный пример - допустим, есть объект и ты хочешь иметь возможность его лочить снаружи. Одно дело - когда ты создал внутри мьютекс, написал alias myMutex this и всё. Другое - когда тебе lock|unlock надо явным образом пробрасывать. Шаблонам оно ортогонально.

 
  8.84, arisu, 14:46, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> То, что alias this единственный - насколько я помню, бага, которая есть
> в багзилле.

и давно. и всем пофигу.

алсо, template mixins. на кой тебе этот alias? спокойно делаешь mixin template и миксинишь его в класс/структуру. с методами lock и unlock. потому что высовывать детали реализации (mutex) наружу — моветон. а для универсальной лочки — опять же шаблон, который проверит наличие нужного метода.

хватит уже крестами мыслить, D — не кресты.

 
2.47, Аноним, 20:18, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку]  +/
Не знаю, как в цпп, а в этом нашем С есть примитивный аналог, хоть и не часть ст... весь текст скрыт [показать] [показать ветку]
 
  3.50, Kodir, 21:33, 19/08/2014 [^] [ответить] [смотреть все]  +1 +/
> Не знаю, как в цпп, а в этом нашем С есть примитивный аналог

С таким успехом и ассемблер - примитивный аналог Си. :)
Разработчикам не нужны "аналоги", "копии", "обходные пути" - им нужен ПРЯМОЙ инструмент для выражения своих мыслей. Ну и надёжный, конечно - что Ди и сделал как замена таймбомбовому Цэ-пи-пи.

Линуксу давно уже нужен нормальный язык, позволяющий хотя бы в 21 веке забыть кошмарный сон "buffer overflow" (а количество этих потенциальных уязвимостей растёт десятикратно с каждой новой перделкой/библиотекой, потому что пишется всё головотяпами-энтузиастами).

 
  4.52, rob pike, 23:15, 19/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> Разработчикам не нужны "аналоги", "копии", "обходные пути" - им нужен ПРЯМОЙ инструмент для выражения своих мыслей

Такого человечество не придумало.
Включая язык, секретаршу и энцефалографию.

 
4.55, angra, 23:41, 19/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +2 +/ > Линуксу давно уже нужен нормальный язык, позволяющий хотя бы в 21 веке
> забыть кошмарный сон "buffer overflow" (а количество этих потенциальных уязвимостей растёт
> десятикратно с каждой новой перделкой/библиотекой, потому что пишется всё головотяпами-энтузиастами).

Вот в php нет buffer overflow. Как там с безопасностью рассказать или сам знаешь?

 3.53, rob pike, 23:16, 19/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +2 +/ Ну да. А еще эксепшны есть. В setjmp.h
 3.66, arisu, 04:53, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +2 +/ это, мягко говоря, соооовсем не то. mixin'ы в D — это геренация кода во время компиляции. проще говоря: mixin('int a=42;') во время компиляции будет заменено на «int a=42;».

с первого взгляда эта фича кажется бессмысленной, но если узнать, что в ди во время компиляции можно исполнять код на ди (ограничение — нет глобальных переменных; но на функциональщине можно много всего сделать; например, функция toHash(), вычисляющая SuperFastHash, работает как во время компиляции, так и во время исполнения), то mixin'ы сразу становятся намного более интересными. потому что строки для них можно генерировать довольно сложным ди-кодом.

например, парзить дишным кодом во время компиляции некие файлы с диска и на их основе генерировать дишный код (привет, шаблоны страниц в vide.d).

 
  4.67, arisu, 04:59, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
p.s. например, библиотека std.regex активно пользуется этой фичей для того, чтобы превратить регулярку в обычный ди-код. при этом ей хватает мозгов использовать автоматы, когда регулярка без бэктрэйсинга и делать другие разные гитики.

конечно, буст тоже нечто подобное умеет на шаблонной магии, но попробуйте почитать код буста для этого, а потом — код std.regex.

 
3.69, arisu, 05:12, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/ кстати, спасибо. как-то я пропустил чудесный ключ «-fplan9-extensions».
 
1.73, Бутират, 10:21, 20/08/2014 [ответить] [смотреть все]    [к модератору]  +/ Если язык такой бодрый. Почему он не пришел на замену c++? Не думаю что дело исключительно в традициях. PHP же смогли свергнуть. Причем за более короткое время чем существует C++
 
  2.74, arisu, 10:36, 20/08/2014 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  +/
у тебя хороший ник, точно описывает твой пост.
 
  3.75, Бутират, 10:44, 20/08/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
Видимо чтобы меня поняли, придется изъясняться в школьных традициях вашего сообщества.

Этот ваш Дэ задумывался как c++ done right, но в итоге смачно лососнул у c++. О чем говорит текущая его популярность, а вернее его отсутствие. Видать не совсем уж и done right

 
2.80, Аноним, 11:20, 20/08/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/
Язык не так давно немного устаканился Была революционная 1-я версия, теперь 2-... весь текст скрыт [показать] [показать ветку]
 
  3.81, arisu, 11:44, 20/08/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
171 окончательная стабильность 187 8212 это 171 dead as a doornail 187... весь текст скрыт [показать]
 
2.82, Аноним, 14:12, 20/08/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/ 
1.85, Аноним, 15:26, 20/08/2014 [ответить] [смотреть все]     [к модератору]  +/
и как же они умудрились запилить эту фичу при полном отсутствии ABI и linking on... весь текст скрыт [показать]
 
  2.86, arisu, 15:34, 20/08/2014 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  +/
> и как же они умудрились запилить эту фичу при полном отсутствии ABI
> и linking onvention на плюсовые ф-ии и методы?

для винды: -m64 поддерживает m$vc. -m32 поддерживает dmc. -m32mscoff поддерживает m$vc.

для пигвинуса: gcc 4.

точно так же, как и просто extern (C++).

 

Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=40406

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика