LINUX.ORG.RU

Metaprog: универсальная графическая среда программирования [в разработке] часть 6

 , , ,


2

3

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

Чего нет в этой части - есть в прошлых. Для того, чтобы понять идею Метарпога, не обязательно читать тысячи комментариев из всех тем. Необходимый минимум собран в заголовках тем. Читайте заголовки и ссылки в них. Кстати, обновляется только заголовок последней темы, если эта тема уже не последняя - она не обновляется. В более новых темах пункты FAQ могут обновляться и в случае расхождения действительна более новая версия.

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

Это из-за того, что парсер инклюдов разворачивает всё (в том числе структуры и указатели) до примитивных типов. Если версия гтк отличается от моей - возможны отличия в анатомии структур и сегфолты из-за этого. Эта проблема будет решена, но позже.

11. Как выглядит факториал в графическом представлении?

Metaprog: универсальная графическая среда программирования [в разработке] (комментарий)

(пока что на Лабвью)

Примеры

Находятся в прошлых темах. Компилировать исходники нужно так:

gcc ./test.c -o ./test $(pkg-config --cflags --libs gtk+-3.0)

Metaprog: универсальная графическая среда программирования [в разработке]

Metaprog: универсальная графическая среда программирования [в разработке] часть 2

Metaprog: универсальная графическая среда программирования [в разработке] часть 3

Metaprog: универсальная графическая среда программирования [в разработке] часть 4

Metaprog: универсальная графическая среда программирования [в разработке] часть 5

Прототип чата:

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)

Показывалка языка локализации через seltocale (кстати, у кого что показывает?)

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)

Прототип чата с прокруткой:

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)



Последнее исправление: CYB3R (всего исправлений: 10)
Ответ на: комментарий от metaprog

карта американского банка. вряд ли с рашинской налоговой будут сотрудничать, пошлют их в жопу прямо как ты анонимауса! думаю это опасно для тех кто работает с местными заказчиками.

iluha16
()
Ответ на: комментарий от metaprog

мне лень читать устаревшую текстовую информацию после трудового дня. предоставь графическое описание в интерактивной форме.

iluha16
()
Ответ на: комментарий от metaprog

хаха. да это же просто калькулятор. причём тут программирование? у меня тоже похожий есть с тригонометрическими ф-циями, возведением в степень и прочими плюшками но причём тут программирование?

iluha16
()
Ответ на: комментарий от metaprog

а ну может, я не вчитывался просто фото глянул. ну к таким калькуляторам вроде как книжка прилагается в которой пишется что программируемые они, я не вникал но думаю что там что то типа записать последовательность формул по которым считать просто.

iluha16
()
Ответ на: комментарий от iluha16

Там даже игры были. Я, кстати, не ленюсь читать всякие интересности. Что я читать ленюсь - так это текстовый код, каждая строчка прочтения которого дается мне с матюками.

metaprog
() автор топика
Ответ на: комментарий от metaprog

ну а мне лень читать интересности потому что я начитался текстового кода и лекций по физике. сейчас в моём состоянии графика и видево самое то.

iluha16
()
Ответ на: комментарий от iluha16

я не вникал но думаю

Вся суть.

Там был полноценный низкоуровневый ЯП с обратной польской записью (наподобие Форта, но примитивнее), ветвлением, циклами. Память команд и программы разделена. Поскольку одно время это были самые доступные для населения программируемые девайсы, люди изгалялись как могли: от численных методов до игры «Посадка на Луну».

Программирование на этом слегка напоминало что-то среднее между ассемблером и Фортом. Правда, в отличие от оных, из коробки наличествовала вещественная арифметика.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

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

iluha16
()
Ответ на: комментарий от hobbit

Правда, в отличие от оных, из коробки наличествовала вещественная арифметика.

И косвенная адресация переходов. По сути реализация указателей. Вот там-то оные, как доступная программисту сущность, были крайне актуальны. Но с какого перепою некоторые сейчас за них так яростно хватаются, жертвуя удобством, кроссплатформенностью и масштабируемостью, решительно непонятно.

Да, я хочу быть свободен от корпорации, которая хочет всё про меня знать.

Го тогда на необитаемый остров под ничьей юрисдикцией. Поскольку наибольшая корпорация, которая хочет всё про тебя знать, называется государством. И работают на эту корпорацию такие же обычные люди/хурма-на-блюде, просто дорвавшиеся и имеющие возможность компенсировать свою ущербность путём угнетения остальных. И вот от них-то, стоящих прямо под твоим носом и тыкающих в него автоматом, и надо защищаться в первую очередь, а уж потом от абстрактных антиутопических монстров.

А кроме того, ты всегда на компе строго одну программу запускаешь? Если 10 говнокодеров напишут по программе, исходя из того, что гигабайт не объём, тут-то твоя машинка и превратится в калькулятор.

Во-первых, выжирание ресурсов (особенно рантаймом) - совершенно не показатель говнокода. Во-вторых, не превратится, у меня 16, но суть в том, что программирование исходя из того, что гигабайт — не объём, совершенно не гарантирует, что этот самый гигабайт будет чем-то забит. Вообще я имел в виду, что отсутствие паранойи на предмет ресурсов (оставьте её разработчикам рантаймов, ну чёрт же ж вас через коромысло!) позволяет использовать куда более эффективные для стоящих задач инструменты. Например, можно вместо сипляспляса использовать, допустим, хаскель. А вместо голого JS можно использовать, допустим, Elm или ClojureScript. На железе среднестатистического нищеброда вроде скотечки, у которого даже Vim тормозит, они тоже будут не очень шустро функционировать, зато с точки зрения эффективности решения задачи нормальными людьми для нормальных людей они могут оказаться куда более в тему, чем чистый JS даже в самых современных его формах.

rebforce
()
Ответ на: комментарий от rebforce

Например, можно вместо сипляспляса использовать, допустим, хаскель.

У хескеля нету библитек, у хескеля нету скорости, у хескеля нету предсказуемости, чет мне кажется работаешь ты только в дурке пациентом, лол, как можно такую чушь нести несколько тредов подряд?

На железе среднестатистического нищеброда нищеброда

Мой нищенский компьютер такой же как и у большинства игроков стима (статистика за 2018) год, даже чуть мощнее, что у тебя там за манямир с 32 гб озушками на каждом телефоне?

Deleted
()
Ответ на: комментарий от Deleted

У хескеля нету библитек

Щито?

у хескеля нету скорости

Щито?!

у хескеля нету предсказуемости

ЩИТО?! Где у хаскеля без дополнительных телодвижений недетерминизм?!

Щкола, ты что мелешь вообще? Как можно нести «такой чушь»? Маэстро, туш!

с 32 гб озушками на каждом телефоне?

Ну не 32, но 12 скоро будет. А сейчас лично на моём 8. На другом - полгига, но он ценен не ресурсами, а исследовательским потенциалом, в противном случае и его можно было бы отправить на свалку истории, чай не эрик 380-й, который тоже, кстати, имеется.

rebforce
()
Ответ на: комментарий от rebforce

Щито?

Совсем поехавший? Просто мысленно напиши список тех областей где юзают С++ и почекай библиотеки подобные у хескеля. Ну или погугли вакансии, да блед у него даже IDE нету, че за рофлы.

Щито?!

То?!

ЩИТО?! Где у хаскеля без дополнительных телодвижений недетерминизм?!

Real Time?!

На другом - полгига
его можно было бы отправить на свалку истории

У меня есть разобранный на 32 мб, еще 2 года назад сидел с него в интернете.

Deleted
()
Ответ на: комментарий от Deleted

у него даже IDE нету, че за рофлы

вообще не показатель но как насчёт http://www.leksah.org/

У меня есть разобранный на 32 мб, еще 2 года назад сидел с него в интернете

вполне годно если использовать links

iluha16
()
Ответ на: комментарий от rebforce

да ну надо же даже JS уже мало стало для говнокодеров, появились инструменты которые могут выжрать ещё больше гигабайтов из компов нищебродов.

iluha16
()
Ответ на: комментарий от iluha16

наверно с другим чем то путаешь.

Да-да, расскажи мне ещё.

там экран только цифры может показывать.

А также страшные слова «ЕГГОГ» и «ЗГГОГ». Там пошаговые космические игры так и работали — обсчитывается итерация, на экран выводится высота, в соседнем регистре - скорость. Самое неприятное, что у большинства моделей не было энергонезависимой памяти, программы при каждом включении приходилось вводить в машинном коде вручную. Приятным исключением был уже упоминавшийся здесь МК-52.

hobbit ★★★★★
()
Ответ на: комментарий от iluha16

Им было чем заняться. Вот только из доступной электроники почти ничего не было. Вот и играли на чем могли и как могли

saibogo ★★★★
()
Ответ на: комментарий от iluha16

И этим занимались. Не взаимоисключает одно другого. Я до сих пор и паяю и программированием увлекаюсь. Хотя это далеко от моей основной деятельности

saibogo ★★★★
()
Ответ на: комментарий от iluha16

Без компа ты б и на калькуляторе играл:)

metaprog
() автор топика
Ответ на: комментарий от iluha16

вполне годно если использовать links

Opera Mini ж есть, зачем links. Там они на своих серверах парсят страницы, и возвращают на телефон мне компактное представление сайта, заодно рекламу обрезают %) Ну и картинки есть конечно же.

Deleted
()
Ответ на: комментарий от iluha16

да это мозахизм какой то а не игра

Ну кому что. ТСу вон обязательно подавай диаграммы вместо текстов, а там, наоборот, люди читали числа и включали воображение.

Кому-то и шахматы мазохизм...

hobbit ★★★★★
()
Ответ на: комментарий от Deleted

Слушая сюды, недоросль. Из зомбей вроде тебя отлично получаются маркетинговые дроиды мерзософта или огрызка, меряющие продукт только его популярностью. IDE под хаскель имеются, но они не нужны, ибо и без IDE там всё весьма компактно и удобно. А любой ЯП, на котором без IDE писать неудобно, ущербен по определению. Это раз.

Два — ты вообще понимаешь, что такое предсказуемость в терминах среды исполнения ЯП? При чём тут вообще реалтайм, дурилка картонная? Реалтаймовость среды от языка вообще не зависит. И если уж на то пошло, то для RTC-программирования по факту чаще жабу с адой используют, чем твои любимые костыли из семидесятых.

Забаньте уже этого клоуна, все треды своим тупизмом загадил.

rebforce
()
Ответ на: комментарий от rebforce

О найс, шиз слился теперь пишет про каких то маркетинговых зомби и прочий бред, ахах.

А любой ЯП, на котором без IDE писать неудобно, ущербен по определению.

У тебя еще и провалы в памяти, сколько раз ты это уже пишешь? Ты понимаешь что твои маня-размышления вообще не к теме?

При чём тут вообще реалтайм, дурилка картонная?

Ахах, потому ще я про него говорю, лол? Есть к примеру VxWorks, там плюсцы и си, есть боинги, там тоже С++, а де хескель? Я бы не сел в самолет де чето на хескеле сделано, а то вдруг стек забется из за ленивости, или еще какая хрень.

Deleted
()
Ответ на: комментарий от Deleted

Решил все же, что со всеми недостатками гтк грех не пощупать нуклеар с SDL2. Пробую прокачать инклюды из демки.

//Скопируй этот текст в файл incl.h и введи эти две команды:

//gcc -E incl.h -std=c99 -pedantic -O2 -o incl.c -lSDL2 -lGLESv2 -lm
//castxml --castxml-output=1 -o ./incl.xml ./incl.c

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <assert.h>
#include <math.h>
#include <limits.h>
#include <time.h>

#define NK_INCLUDE_FIXED_TYPES
#define NK_INCLUDE_STANDARD_IO
#define NK_INCLUDE_STANDARD_VARARGS
#define NK_INCLUDE_DEFAULT_ALLOCATOR
#define NK_INCLUDE_VERTEX_BUFFER_OUTPUT
#define NK_INCLUDE_FONT_BAKING
#define NK_INCLUDE_DEFAULT_FONT
#define NK_IMPLEMENTATION
#define NK_SDL_GLES2_IMPLEMENTATION
#include "nuklear/nuklear.h"
#include "nuklear/demo/sdl_opengles2/nuklear_sdl_gles2.h"

Мне castxml плюется, что не понимает _Float128 и еще много чего. Как быть?

metaprog
() автор топика
Ответ на: комментарий от Deleted
$ castxml --castxml-output=1 -o ./incl.xml ./incl.c
In file included from incl.h:27:
In file included from nuklear/demo/sdl_opengles2/nuklear_sdl_gles2.h:18:
In file included from /usr/include/SDL2/SDL.h:32:
In file included from /usr/include/SDL2/SDL_main.h:25:
In file included from /usr/include/SDL2/SDL_stdinc.h:84:
In file included from /usr/include/math.h:420:
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:21:30: error: 
      unknown type name '_Float128'
extern int __fpclassifyf128 (_Float128 __value) __attribute__ ((__nothro...
                             ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:25:27: error: 
      unknown type name '_Float128'
extern int __signbitf128 (_Float128 __value) __attribute__ ((__nothrow_...
                          ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:30:25: error: 
      unknown type name '_Float128'
extern int __isinff128 (_Float128 __value) __attribute__ ((__nothrow__ ...
                        ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:33:26: error: 
      unknown type name '_Float128'
extern int __finitef128 (_Float128 __value) __attribute__ ((__nothrow__ ...
                         ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:36:25: error: 
      unknown type name '_Float128'
extern int __isnanf128 (_Float128 __value) __attribute__ ((__nothrow__ ...
                        ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:39:27: error: 
      unknown type name '_Float128'
extern int __iseqsigf128 (_Float128 __x, _Float128 __y) __attribute__ ((...
                          ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:39:42: error: 
      unknown type name '_Float128'
extern int __iseqsigf128 (_Float128 __x, _Float128 __y) __attribute__ ((...
                                         ^
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:42:31: error: 
      unknown type name '_Float128'
extern int __issignalingf128 (_Float128 __value) __attribute__ ((__nothr...
                              ^
In file included from incl.h:27:
In file included from nuklear/demo/sdl_opengles2/nuklear_sdl_gles2.h:18:
In file included from /usr/include/SDL2/SDL.h:38:
In file included from /usr/include/SDL2/SDL_cpuinfo.h:67:
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/immintrin.h:29:
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:52:1: error: conflicting
      types for '_mm_prefetch'
_mm_prefetch (const void *__P, enum _mm_hint __I)
^
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:52:1: note: '_mm_prefetch'
      is a builtin with type 'void (const char *, int)'
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:52:1: error: definition of
      builtin function '_mm_prefetch'
_mm_prefetch (const void *__P, enum _mm_hint __I)
^
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:54:3: error: argument to
      '__builtin_prefetch' must be a constant integer
  __builtin_prefetch (__P, (__I & 0x4) >> 2, __I & 0x3);
  ^                        ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:130:10: error: invalid
      conversion between vector type '__m128' (vector of 4 'float' values) and
      integer type 'int' of different size
  return (__m128) __builtin_ia32_addss ((__v4sf)__A, (__v4sf)__B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:136:10: error: invalid
      conversion between vector type '__m128' (vector of 4 'float' values) and
      integer type 'int' of different size
  return (__m128) __builtin_ia32_subss ((__v4sf)__A, (__v4sf)__B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:142:10: error: invalid
      conversion between vector type '__m128' (vector of 4 'float' values) and
      integer type 'int' of different size
  return (__m128) __builtin_ia32_mulss ((__v4sf)__A, (__v4sf)__B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:148:10: error: invalid
      conversion between vector type '__m128' (vector of 4 'float' values) and
      integer type 'int' of different size
  return (__m128) __builtin_ia32_divss ((__v4sf)__A, (__v4sf)__B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:242:10: error: returning
      'int' from a function with incompatible result type '__m128' (vector of 4
      'float' values)
  return __builtin_ia32_andps (__A, __B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:248:10: error: returning
      'int' from a function with incompatible result type '__m128' (vector of 4
      'float' values)
  return __builtin_ia32_andnps (__A, __B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:254:10: error: returning
      'int' from a function with incompatible result type '__m128' (vector of 4
      'float' values)
  return __builtin_ia32_orps (__A, __B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:260:10: error: returning
      'int' from a function with incompatible result type '__m128' (vector of 4
      'float' values)
  return __builtin_ia32_xorps (__A, __B);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
metaprog
() автор топика
Ответ на: комментарий от metaprog

В castxml используется clang, а ты используешь gcc, видимо расширения несовместимы, используй clang, и вместо этого:

gcc -E incl.h -std=c99 -pedantic -O2 -o incl.c -lSDL2 -lGLESv2 
Делай это:
clang -E incl.h -std=c99 -pedantic -O2 -o incl.c -lSDL2 -lGLESv2 

Deleted
()
Ответ на: комментарий от rebforce

понятия не имею ни о том ни о другом. я не люблю хватать знания по верхам. но если они требуют памяти ещё больше чем грёбаный джава скрипт уносите их вместе с rebforceом.

iluha16
()
Ответ на: комментарий от iluha16

[rebforcer-mode]Щито, ты еще скажи в wasm нужно бы это дело скомпилировать!!! На телефонах 32 гб памяти!!! Скоро 666 будет!!! Луддиты, быдлокодеры!!! Признавайте мою правоту, я осилятор!!!! Я психопат, сверхчеловек, я всех порежу!!![/rebforcer-mode]

Deleted
()
Ответ на: комментарий от Deleted

rebforce вроде бы что то там пишет революционное но что конкретно не говорит, сидит где то на озере которое возле штаб квартиры чего то там. или это не он не помню уже.

iluha16
()
Ответ на: комментарий от iluha16

Хвалится, что в США в командировке. ЧСВ зашкаливает, типа какой он аху крутой, в отличие от нас, дикарей, сидящих в рашках и украшках.

metaprog
() автор топика
Ответ на: комментарий от Deleted

Ой блин, дурилку забыли спросить, которая детерминизм (предсказуемость с точки зрения среды исполнения ЯП) с реалтаймом путает. И за RTOS тоже иногда лучше жевать, окда? Пять минут, кстати, пытался вспомнить, что у меня за дичь на VxWorks в ящиках валяется дома. А, точно, это же тураевский SO-2510, который до сих пор стоит сотни нефти чисто потому, что тураевский, но даже хьюзу 7101 18-летней давности, умеющему с той же сетью работать, по многим параметрам проигрывает. Кабы только у них, Тураи, спутник над Штатами был, то и толку было бы больше. Но VxWorks всё равно уже давно не фонтан, ему те же Nucleus и ThreadX конкретно так на пятки наступают.

Да, я знаю, ты спустя часы гуглежа ехидно спросишь «а разве Nucleus и ThreadX не на сях написаны?» А не пофиг ли? Иные RTOS-ядра и на Ada95 пишут, и даже на жабе (RTSJ). Ещё раз говорю, ЯП тут до задницы вообще.

а де хескель?

Здесь, например (не путать с унылым редактором).

сколько раз ты это уже пишешь?

Столько, сколько нужно, чтоб до твоей и топикстартерской головешки это дошло.

rebforce
()
Ответ на: комментарий от Deleted

О! Неторопливое обсуждение нюансов разработки метапрога не будоражит остальных, решил подкинуть дров в костёр срача, причём чтобы точно задело - сразу переход на личности.

Обсуждение ВП - у большинства (кроме котечки и ТСа) мнение сходится. Обсуждение чего-то другого - сразу у каждого своё единственно правильное мнение.

Если бы в этих тредах обсуждали только метапрог и ВП, то не было бы таких срачей.

arturianec100
()
Ответ на: комментарий от rebforce

Столько, сколько нужно, чтоб до твоей и топикстартерской головешки это дошло.

Не жалко своего времени? Так на них не повлиять. В контексте разработки ТС учится только на своих ошибках.

arturianec100
()
Ответ на: комментарий от rebforce

которая детерминизм с реалтаймом путает

Ты дурачком прикидываешься или тебе реально объяснить почему ты опять начал бредни писать?

Да, я знаю, ты спустя часы гуглежа ехидно спросишь

Лол, шиз из последних сил пытается через бредни-догадки принизить котечку.

Ещё раз говорю, ЯП тут до задницы вообще.

... Не, ну смотря какая задача конешн, давай спустимся к донным МК, тоже будешь говорить что язык ниважен, впихивайте гэцешный хескель?

Здесь, например

Де здесь? Где применяется?

Столько, сколько нужно, чтоб до твоей и топикстартерской головешки это дошло.

Мы это вроде бы уже обсудили, пиши по теме лучше.

Deleted
()
Ответ на: комментарий от arturianec100

сразу переход на личности

Мне это не в первый раз пишут, вы слепые типа? Или не видите что ребфорсер и анонимы неадекватны и вообще пишут про убийства? Я кстати только про поножовщину добавил, и про 32 гб пошутил, все остальное реально писалось им.

Если бы в этих тредах обсуждали только метапрог и ВП, то не было бы таких срачей.

Дык ребфорсер главная трабла, и еще vcpkg или как там его, когда ему предложили перестать, причем не только я, он сказал «Ряя, я буду тут устраивать срач метапрог разводит на деньги людей, я должен выполнить великую миссию и показать всем людям кто они!» суть такая.

Deleted
()
Ответ на: комментарий от Deleted

Дык ребфорсер главная трабла

Главный клоун. Очень жаль, что «антиметапрог» на реде отменился, так хотелось увидеть и поржать...

metaprog
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.