Перейти к публикации
  • Сейчас на странице   Всего пользователей: 2   (2 пользователя, 0 гостей)

Rooster

Программирование[11]

var  

284 пользователя проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

E1azor написал 4 минуты назад:

Язык си это асемблер с макросами + поддержана статическая типизация на уровне языка. Конечно, это язык высокого уровня. У С++ больше абстракций, хотя некоторые из них жрут чуть больше 0. Наличие хуевой тучи абстракций с почти нулевой стоимостью -- это основная фишка языка с++, про какую высокоуровневость вы тут размусоливаете хз.

Привет. Спасибо за твой пост. Хотелось бы тебя чуток поправить. Си это не ассемблер с макросами. Собственно все. Извини, что отвлек.

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 21 час назад:

image.png.a353f07d80fdd4658df7f3dc29166721.png

 

сыграл в литкод и проиграл :ponimau:

image.png.2464247a41ca51c38f9cb813f201b52c.png

 

теперь норм

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 16 минут назад:
E1azor написал 21 минуту назад:

Язык си это асемблер с макросами + поддержана статическая типизация на уровне языка. Конечно, это язык высокого уровня. У С++ больше абстракций, хотя некоторые из них жрут чуть больше 0. Наличие хуевой тучи абстракций с почти нулевой стоимостью -- это основная фишка языка с++, про какую высокоуровневость вы тут размусоливаете хз.

Привет. Спасибо за твой пост. Хотелось бы тебя чуток поправить. Си это не ассемблер с макросами. Собственно все. Извини, что отвлек.

Привет. Спасибо за существенное замечание. Наверно поэтому был придуман с--, обычный си слишком высокоуровневый.


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 5 минут назад:

Работу ищешь?

 

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

 

Скрытый текст

точнее давно интересно, поиграться в литкод лежит как дело в туду листе несколько лет

 

Скрытый текст

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

 

 

CriErr понравилось это

Поделиться сообщением


Ссылка на сообщение
E1azor написал 27 минут назад:
Grohuf написал 3 часа назад:

Ну в продолжение. Берем Си. Язык не поддерживает ООП, но на нем можно писать как будто поддерживает. Только придется самостоятельно делать таблицы виртуальных функций и тому подобные вещи, которые в Си++ стандартный язык делает за тебя. Можно, при желании, сделать утилиту, которая будет тебе генерировать сниппеты для формирования таблиц виртуальных функций. То есть если развивать это направление, то ты сможешь писать как с ООП не прикладывая больших усилий.

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

 

 

Язык си это асемблер с макросами + поддержана статическая типизация на уровне языка. Конечно, это язык высокого уровня. У С++ больше абстракций, хотя некоторые из них жрут чуть больше 0. Наличие хуевой тучи абстракций с почти нулевой стоимостью -- это основная фишка языка с++, про какую высокоуровневость вы тут размусоливаете хз.

 

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

При этом в языке может поддерживаться и статическая, и динамическая типизация. Например, в С# всё в объектах храни и ебись с ними сколько влезет..

 

джастдуит опять обосрался бтв

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

Поделиться сообщением


Ссылка на сообщение
13uRn1nG написал 2 минуты назад:
E1azor написал 31 минуту назад:
Grohuf написал 3 часа назад:

Ну в продолжение. Берем Си. Язык не поддерживает ООП, но на нем можно писать как будто поддерживает. Только придется самостоятельно делать таблицы виртуальных функций и тому подобные вещи, которые в Си++ стандартный язык делает за тебя. Можно, при желании, сделать утилиту, которая будет тебе генерировать сниппеты для формирования таблиц виртуальных функций. То есть если развивать это направление, то ты сможешь писать как с ООП не прикладывая больших усилий.

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

 

 

Язык си это асемблер с макросами + поддержана статическая типизация на уровне языка. Конечно, это язык высокого уровня. У С++ больше абстракций, хотя некоторые из них жрут чуть больше 0. Наличие хуевой тучи абстракций с почти нулевой стоимостью -- это основная фишка языка с++, про какую высокоуровневость вы тут размусоливаете хз.

 

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

При этом в языке может поддерживаться и статическая, и динамическая типизация. Например, в С# всё в объектах храни и ебись с ними сколько влезет..

 

джастдуит опять обосрался бтв

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

Да, сам язык ничего не знает про машину. Конкретный компилятор уже ближе к тому, что я написал (но меня уже поправили, хуйню высрал).

 

Olololnet написал 9 минут назад:

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

даны N шаров, найти максимальное количество вложенных друг в друга (наибольшую матрёшку)


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)
Index написал 2 часа назад:

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

ну в скале (2) так нельзя

в 3 можно

 

Index написал 2 часа назад:

Составные типы есть? Нет

это ты про юнион типы?

Index написал 2 часа назад:

Self type есть? Нет

это ты про те которые в скале?

а они гдето кроме есть еще?

в чем профит?

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

13uRn1nG написал 1 час назад:

Как при подобных вводных языки можно назвать низкоуровневыми не совсем понятно.

выше раза 3 было описано как (


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 1 час назад:

 

13uRn1nG написал 2 часа назад:

Как при подобных вводных языки можно назвать низкоуровневыми не совсем понятно.

выше раза 3 было описано как (

 

Ну если выдумывать дефиниции то да, в CS есть всё таки дефолтные критерии касаемые языков.

https://en.wikipedia.org/wiki/Low-level_programming_language

https://en.wikipedia.org/wiki/High-level_programming_language

Поделиться сообщением


Ссылка на сообщение
Index написал 7 часов назад:
Just.Doit написал 7 часов назад:

в котлине очень близко к этому

Чем?

Составные типы есть? Нет

Self type есть? Нет

 

 

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

  Показать содержимое

псевдокод для тупых 


function(param: String | Decimal) {
 switch(param) {
   case String s -> Хуй
   case Decimal в -> Пизда
 }
}

но такое можно только в хаскеле делать, даже в скале вроде хуй 

В плюсах можно 

 

constexpr auto foo = []<typename T>(T const& arg) {
    if constexpr (std::same_as<T, int>) {
        
    } else if constexpr (std::same_as<T, float>) {
        
    } else if constexpr (requires (T const& arg) { arg.c_str(); }) {
        
    } else {
        static_assert(error<T>, "no matching overload for T");
    }
};

либо если сделать враппер

 

template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;

constexpr auto foo = overloaded(
    [](int i) {  },
    [](float f) {  },
    [](std::string const& str) {  }
);

 

13uRn1nG понравилось это

 

9Aa4jVY.jpeg

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
besteady написал 44 минуты назад:
Index написал 8 часов назад:
Just.Doit написал 8 часов назад:

в котлине очень близко к этому

Чем?

Составные типы есть? Нет

Self type есть? Нет

 

 

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

  Скрыть содержимое

псевдокод для тупых 



function(param: String | Decimal) {
 switch(param) {
   case String s -> Хуй
   case Decimal в -> Пизда
 }
}

но такое можно только в хаскеле делать, даже в скале вроде хуй 

В плюсах можно 

 


constexpr auto foo = []<typename T>(T const& arg) {
    if constexpr (std::same_as<T, int>) {
        
    } else if constexpr (std::same_as<T, float>) {
        
    } else if constexpr (requires (T const& arg) { arg.c_str(); }) {
        
    } else {
        static_assert(error<T>, "no matching overload for T");
    }
};

либо если сделать враппер

 


template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;

constexpr auto foo = overloaded(
    [](int i) {  },
    [](float f) {  },
    [](std::string const& str) {  }
);

 

Через variant + visit же ещё можно не?

Поделиться сообщением


Ссылка на сообщение

Используйте с++ как си с классами (максимум с++ 11) и не ебите мозга, тогда всё у вас будет хорошо. Хз кто будет в с++ ждать пока скомпилится эта бесполезная мёртворождённая мишура типа

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant

или

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple

поэтому и не повышают особо уровень абстракций в с++, да и не нужны они никому


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)
E1azor написал 23 минуты назад:

Используйте с++ как си с классами (максимум с++ 11) и не ебите мозга, тогда всё у вас будет хорошо. Хз кто будет в с++ ждать пока скомпилится эта бесполезная мёртворождённая мишура типа

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant

или

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple

поэтому и не повышают особо уровень абстракций в с++, да и не нужны они никому

Так все новые абстракции направлены на буст перфоманса и упрощение тех вещей которые приходилось самому костылить в с++11. Си с классами это RTTI и прочий мусор, слабая рефлексия, нет охуеннейших корутин + асинков, нет новых удобных механизмов работы с parameter packs, опять же Variant позволяет играть в статический полиморфизм без ебли с мануально написаным CRTP. Складывается ощущение  что плюсисты топящие за с++11 это люди которые просто не хотят учится новому а пытаются задефить свой уютный мирок. Без негатива


Изменено пользователем 13uRn1nG

Поделиться сообщением


Ссылка на сообщение
besteady написал 3 часа назад:
Index написал 11 часов назад:
Just.Doit написал 11 часов назад:

в котлине очень близко к этому

Чем?

Составные типы есть? Нет

Self type есть? Нет

 

 

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

  Показать содержимое

псевдокод для тупых 



function(param: String | Decimal) {
 switch(param) {
   case String s -> Хуй
   case Decimal в -> Пизда
 }
}

но такое можно только в хаскеле делать, даже в скале вроде хуй 

В плюсах можно 

 


constexpr auto foo = []<typename T>(T const& arg) {
    if constexpr (std::same_as<T, int>) {
        
    } else if constexpr (std::same_as<T, float>) {
        
    } else if constexpr (requires (T const& arg) { arg.c_str(); }) {
        
    } else {
        static_assert(error<T>, "no matching overload for T");
    }
};

либо если сделать враппер

 


template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;

constexpr auto foo = overloaded(
    [](int i) {  },
    [](float f) {  },
    [](std::string const& str) {  }
);

 

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

 

И большой вопрос разберет ли статический анализатор на этапе написания кода.

Ошибка на этапе компиляции это хорошо, но подчеркивание красным в ебало на этапе написания кода ещё лучше.

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 12 часов назад:

выше ссылка на документацию где про типы написано. долбаеб

:chel:

Ну ты тупой, чепушила

Это тайпхинт. Коментарий.

Впрочем тут видимо опять эта ситуация:

Just.Doit написал 15 часов назад:

я во всем прав

Манямирок не далеко от хировского ушел

Index написал 13 минут назад:

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

Вынести.

Шаблон можно проверить на соответствие нужному типу. Или вообще концептик написать.

Использовать variant.

Да хотя бы просто перегрузку сделать.


Изменено пользователем GoldRobot

ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
13uRn1nG написал 1 час назад:
E1azor написал 2 часа назад:

Используйте с++ как си с классами (максимум с++ 11) и не ебите мозга, тогда всё у вас будет хорошо. Хз кто будет в с++ ждать пока скомпилится эта бесполезная мёртворождённая мишура типа

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant

или

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple

поэтому и не повышают особо уровень абстракций в с++, да и не нужны они никому

Так все новые абстракции направлены на буст перфоманса и упрощение тех вещей которые приходилось самому костылить в с++11. Си с классами это RTTI и прочий мусор, слабая рефлексия, нет охуеннейших корутин + асинков, нет новых удобных механизмов работы с parameter packs, опять же Variant позволяет играть в статический полиморфизм без ебли с мануально написаным CRTP. Складывается ощущение  что плюсисты топящие за с++11 это люди которые просто не хотят учится новому а пытаются задефить свой уютный мирок. Без негатива

 

Буст перфоманса это ок, если ты библиотекарь, то новшества полезны, для людей это не нужно. Рефлексия не нужна, более читаемо было бы в несколько строк задать поля структуры, или хз о чём ты, на лету типы узнавать тоже не нужно. Просто люди привыкли к языкам более высокого уровня и не могут средствами с++11 написать чтобы всё работало и было красиво написано.

Асинки это про производительность, любое распараллеливание должно делаться через удобные библиотеки, если ты везде пишешь асинки, то значит что-то делаешь не так.

 

Вы придумываете себе не существующие проблемы отсутствия каких-то абстракций.

 

Word 6 или 2003 прекрасно работают с охуительной производительностью. Какие там нужны абстракции? Пара самописных классов, больше ничего. Современный ворд жрёт в 1000 раз больше ресурсов и делает почти то же самое что word 6.

 

В принципе, для написания любого приложения достаточно реализовать 2 абстракции: operator (для того чтобы делать некоторые операции) и конечный автомат, к которому прикрепляются элементы управления через операторы. Вот и всё, только что я вам придумал универсальное решение для всех случаев жизни.


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)
13uRn1nG написал 10 часов назад:
Just.Doit написал 11 часов назад:

 

13uRn1nG написал 12 часов назад:

Как при подобных вводных языки можно назвать низкоуровневыми не совсем понятно.

выше раза 3 было описано как (

 

Ну если выдумывать дефиниции то да, в CS есть всё таки дефолтные критерии касаемые языков.

https://en.wikipedia.org/wiki/Low-level_programming_language

https://en.wikipedia.org/wiki/High-level_programming_language

ну не раз было сказано что используются термины не из CS

внезапно у терминов бывает более одного значения


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
E1azor написал 36 минут назад:

Рефлексия не нужна

:takpadazhi:

Пишут С с классами, а потом дуиты на плюсы гонят.

 


ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение

Я не понял если голдробот такой умный то почему такой бедный? :chel:

Поделиться сообщением


Ссылка на сообщение
Index написал 2 минуты назад:

Я не понял если голдробот такой умный то почему такой бедный? :chel:

потому что ум не кореллирует с богатством

зачастую большинство умных не стремятся к богатстсву

на эту тему даже исследования есть, подтверждающие первый тезис

GoldRobot написал 2 часа назад:

Ну ты тупой, чепушила

Это тайпхинт. Коментарий.

Впрочем тут видимо опять эта ситуация:

это информация о типах, синтаксис которой прописан в оффициальном стандарте языка

иди нахуй долбаеб

 

GoldRobot написал 2 часа назад:

Манямирок не далеко от хировского ушел

 
 

да нет. вы тут обосрались уже не раз, перечитай тред, даунич

besteady написал 6 часов назад:
Index написал 13 часов назад:
Just.Doit написал 14 часов назад:

в котлине очень близко к этому

Чем?

Составные типы есть? Нет

Self type есть? Нет

 

 

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

  Показать содержимое

псевдокод для тупых 



function(param: String | Decimal) {
 switch(param) {
   case String s -> Хуй
   case Decimal в -> Пизда
 }
}

но такое можно только в хаскеле делать, даже в скале вроде хуй 

В плюсах можно 

 


constexpr auto foo = []<typename T>(T const& arg) {
    if constexpr (std::same_as<T, int>) {
        
    } else if constexpr (std::same_as<T, float>) {
        
    } else if constexpr (requires (T const& arg) { arg.c_str(); }) {
        
    } else {
        static_assert(error<T>, "no matching overload for T");
    }
};

либо если сделать враппер

 


template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;

constexpr auto foo = overloaded(
    [](int i) {  },
    [](float f) {  },
    [](std::string const& str) {  }
);

 

эта вся хуйня в котлине тоже есть

речь то шла про юнион типы которые удобно использовать

 


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...