Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
А чего это никто и нигде об Microsoft Visual Studio 2021 не пишет? Неужели не будет?
30 окт 20, 22:09    [22223798]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Включил в ms vs 2017 опцию поддержки модулей. Версия компилятора C++: 1920, как раз пишут, что с этой версии поддержка модулей появилась.
...что-то совсем мрак.
IDE не считает файл интерфейса .ixx исходником: ни форматирования, ни подсветки синтаксиса.
Больше одного .ixx в проекте нельзя: все последующие тупо игнорируются (не обрабатываются, пиши в них что хочешь).
Надо бы в ms vs 2019 посмотреть, и в CLion+gcc.
1 ноя 20, 12:14    [22224277]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Алексей Роза 2020
Member [заблокирован]

Откуда:
Сообщений: 247
ъъъъъ
2021

да вы оптимист
2 ноя 20, 04:20    [22224575]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Установил MS VS 2019.
Какая она красивая. Наконец-то избавились от глупой пустой шапки окна Windows, разместив на месте шапки меню. Целую строчку спасли.

К сообщению приложен файл. Размер - 19Kb
15 ноя 20, 00:27    [22232223]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
ъъъъъ
Включил в ms vs 2017 опцию поддержки модулей. Версия компилятора C++: 1920, как раз пишут, что с этой версии поддержка модулей появилась.
...что-то совсем мрак.
IDE не считает файл интерфейса .ixx исходником: ни форматирования, ни подсветки синтаксиса.
Больше одного .ixx в проекте нельзя: все последующие тупо игнорируются (не обрабатываются, пиши в них что хочешь).
Надо бы в ms vs 2019 посмотреть, и в CLion+gcc.


Ура, можно модули добавлять в проект можно, "полуавтоматически":

К сообщению приложен файл. Размер - 20Kb
15 ноя 20, 00:47    [22232228]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
И в модулях (.ixx - файлах интерфейса) подсветка синтаксиса и всё остальное появилось.
И модулей можно сколько хочешь (в VS 2017 только один можно было).
Красота!
15 ноя 20, 00:49    [22232229]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ,
Строчка это здорово.
А вот модули, не вижу особого хайпа в сети по этому поводу).
15 ноя 20, 14:41    [22232355]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Интересно, как соотносится концепция "модуль == единица компиляции" с возможностью объявлять в модулях темплейты...
Для каждого случая реализации темплейта "единица" будет перекомпилироваться?
16 ноя 20, 13:16    [22232842]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
К модулям очень долго шли в С++. Надеюсь что они решат главную проблему. Менеджмент зависимостей.

Всё остальное - мелочи IMHO.
16 ноя 20, 18:06    [22233192]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
mayton
К модулям очень долго шли в С++. Надеюсь что они решат главную проблему. Менеджмент зависимостей.

Всё остальное - мелочи IMHO.

А ускорение компиляции в 50 раз?
16 ноя 20, 23:35    [22233397]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
Таки прям в 50?
17 ноя 20, 01:14    [22233428]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
mayton
Таки прям в 50?

Бъёрн в последних откровениях рассказывал, что ему демонстрировали.
автор
Они значительно повысят скорость компиляции. Я видел, как скорость возрастает в 50 раз, если сравнивать с методом использования заголовочных файлов. Надеюсь, что большинство программ ускорится, скажем, в семь раз.
17 ноя 20, 01:51    [22233441]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
Опьяненный таким счастьем старик совсем расклеился... Ну дай бох будет 1.5-2.0 раза.
17 ноя 20, 01:53    [22233442]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54782

Ну правильно, сначала соорудил заголовки мегабайтных размеров, а потом успешно
преодолевает. Чего ещё ждать от первопроходца (АКА пионера)?..

Posted via ActualForum NNTP Server 1.5

17 ноя 20, 01:57    [22233446]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ
А ускорение
это решение технической проблемы.
Если технология кроме технической проблемы ничего больше не дает, то она мертва. Забудут "модули в плюсах".
17 ноя 20, 07:44    [22233480]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
CEMb
Member

Откуда: Столько
Сообщений: 2129
mayton
Менеджмент зависимостей.
В телечатике только что обсуждали, вроде бы это всё уже давно решается через CMake + надстройки-менеджеры, коих много существует(больше одного, точно)
ъъъъъ
2021
После каких-то странных со стороны MS приседаний, 2019 community теперь не может быть лицензирована нормально в оффлайне. С 2017 всё ок. А для 2019 нужны какие-то танцы с установкой какого-то софта, который сможет лицензировать community-версию. Поэтому (глядя на одинаковые версии компилятора в папках этих студий) я думаю, что (мне) можно и не смотреть 2021.
PS: самое забавное, у меня на работе в оффлайне стоит 2017 community, сам ставил. С утра читал про фичи 20-х плюсов, решил погрустить и посмотреть на версию компилятора, был удивлён, что компилятор где-то как-то кем-то был проапдейчен до 19.16, что уже неплохо, и есть хорошая надежда на очень светлое будущее.
17 ноя 20, 13:36    [22233684]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
CEMb
А для 2019 нужны какие-то танцы с установкой какого-то софта, который сможет

Что-то я ничего такого не заметил, просто загрузил онлайн инсталлятор и запустил.
Ну, потом вошел в свой MS - аккаунт, чтобы флажок не мигал, и всё.

Все, что нашел насчет технических ограничений:
К Visual Studio Community предоставляется бесплатный доступ без пробного периода. Однако вы должны периодически выполнять вход в систему, поддерживая таким образом обновленное состояние лицензии.)


Расскажи подробнее, о чем речь.
17 ноя 20, 13:48    [22233703]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ,
Ты не ставил на комп без инета. Он об этом.
17 ноя 20, 14:32    [22233777]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
PetroNotC Sharp,

CEMb
не может быть лицензирована нормально в оффлайне.

- точно, пропустил.
17 ноя 20, 14:48    [22233805]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
CEMb
mayton
Менеджмент зависимостей.
В телечатике только что обсуждали, вроде бы это всё уже давно решается через CMake + надстройки-менеджеры, коих много существует(больше одного, точно)

Дьявол кроется в деталях. То что написано после знака плюс "+" привносит в топик
много неопределённости. Это ... знаете как "приложение к договору". Вроде что-то
заявлено но детали не раскрыты.

Это как 20-летний холивар между Windows и Linux который никак не заканчивается
просто по причине того что Linux никак не формализован как ОС. И это создает
в поле спора бесконечное пространство для манипуляций тезисом.
17 ноя 20, 18:59    [22234086]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54782

mayton
просто по причине того что Linux никак не формализован как ОС.

А не формализован он потому что ОС-й не является.

Posted via ActualForum NNTP Server 1.5

17 ноя 20, 19:05    [22234088]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
mayton,

"суслика видишь?"))))
17 ноя 20, 19:30    [22234107]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11466
Нет и его реально нет.
17 ноя 20, 19:32    [22234108]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
Basil A. Sidorov
Нет и его реально нет.
разверни. Может и соглашусь.
17 ноя 20, 19:38    [22234113]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11466
Linux - ядро. Операционные системы это разнообразные дистрибутивы на основе ядра Linux.
17 ноя 20, 19:53    [22234123]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
Basil A. Sidorov
Linux - ядро. Операционные системы это разнообразные дистрибутивы на основе ядра Linux.
нет.
У ядра два слова - ядро линукс.
А одно слово это семейство....
https://ru.m.wikipedia.org/wiki/Linux
17 ноя 20, 20:03    [22234133]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11466
"Семейство", конечно, одно слово. Только оно бессмысленно вне контекста. А с контекстом слов будет не менее двух.
17 ноя 20, 20:10    [22234140]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
Basil A. Sidorov,
У myton в контексте было семейство операционок. Так что твой ему коммент не верен.
17 ноя 20, 20:13    [22234142]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11466
Опровергать противоположное утверждение ссылкой на опровергаемое утверждение - это новое слово в логике.
"Я бы на вашем месте за докторскую диссертацию сел".
17 ноя 20, 20:53    [22234163]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
Basil A. Sidorov
Опровергать противоположное утверждение ссылкой на опровергаемое утверждение - это новое слово в логике.
"Я бы на вашем месте за докторскую диссертацию сел".
дак пусть другие очки считают.
Я спросил что ты имел ввиду.
Послушал и не согласился.
Разошлись.
17 ноя 20, 21:26    [22234185]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11466
PetroNotC Sharp
Послушал и не согласился
... но прав mayton. Л-л-логика. Ж-ж-железная
18 ноя 20, 09:47    [22234379]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
CEMb
Member

Откуда: Столько
Сообщений: 2129
mayton
CEMb
пропущено...
В телечатике только что обсуждали, вроде бы это всё уже давно решается через CMake + надстройки-менеджеры, коих много существует(больше одного, точно)

Дьявол кроется в деталях. То что написано после знака плюс "+" привносит в топик
много неопределённости. Это ... знаете как "приложение к договору". Вроде что-то
заявлено но детали не раскрыты.
Согласен. Но подозреваю, что менеджер зависимостей не может быть стандартизирован.
А вот на счёт модулей в 20-й версии - не знаю, шанс на счастье есть :)
18 ноя 20, 13:01    [22234528]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Всё же, офигительно.
8 янв 21, 08:05    [22260177]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Осторожно.
Коллеги, собираю монструозный проект, из кучи библиотек.
Можно сделать массу dll, а можно всё в один exe собирать. Совершенно неважно, как будет в итоге.
Вопрос в скорости сборки. Пока сам оценить не могу: проект на стадии роста.
Но неминуемо распухнет, поэтому советуюсь, в каком случае сборка будет быстрее.
28 апр 21, 12:28    [22315555]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54782

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

Posted via ActualForum NNTP Server 1.5

28 апр 21, 13:00    [22315579]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
ъъъъъ
Осторожно.
Коллеги, собираю монструозный проект, из кучи библиотек.
Можно сделать массу dll, а можно всё в один exe собирать. Совершенно неважно, как будет в итоге.
Вопрос в скорости сборки. Пока сам оценить не могу: проект на стадии роста.
Но неминуемо распухнет, поэтому советуюсь, в каком случае сборка будет быстрее.

C#. В этом случае сборки не будет по ощущениям.
28 апр 21, 13:06    [22315582]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
Dimitry Sibiryakov

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

Сложный вопрос. Если проект разбит на dll с линковкой at compile time. Это может потребовать последовательной
сборки проектов. Если линковки нет, то проекты могут компилироваться параллельно. Если вообще нет dll... то
единицы трансляции тоже могут компилироваться параллельно.
28 апр 21, 13:11    [22315590]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54782

Ну ты ещё какой-нибудь ПыхПых посоветуй в этом разделе...

Posted via ActualForum NNTP Server 1.5

28 апр 21, 13:12    [22315592]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Dimitry Sibiryakov
Скорость сборки зависит исключительно от объёма изменений исходников с момента последней
сборки. Если ты, конечно, не делаешь каждый раз полную чистую сборку.

ОК, спасибо.
28 апр 21, 13:56    [22315635]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ,
Бывает что пересборку делаем через раз от сборки.
Тогда поможет только модульность.
По крайней мере у меня счас проект и сижу жду 10мин) пересборку
28 апр 21, 18:17    [22315832]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Вах, очередное открытие...

Методы, оказывается, тоже можно как "auto" объявлять
	public:
		auto get_context() // В итоге: void *
		{
			return context;
		}

	private:
		void* context;
27 май 21, 13:48    [22327958]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
ъъъъъ
Вах, очередное открытие...

Методы, ...

Продолжение...
Компоненты долепил, по-отдельности оттестировал, собрал всё вместе - и жесткий облом. Расследование показало, что некоторые виртуальные методы, перекрытые в наследнике, вызываются только в предке. В тестах все хорошо, в рабочем проекте - "не работает".
Дополнительное расследование показало, что так и должно быть: виртуальные методы в конструкторах и деструкторах звать следует с полным пониманием, какой сейчас этап "конструкции/деструкции". А чайникам, вроде меня, виртуальные методы в конструкторах/деструкторах лучше вовсе не звать.
Короче, читать букварь, ибо "тут вам не Дельфи".
6 июн 21, 15:31    [22331920]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
ъъъъъ,

Могу ещё предложить явно вызвать конструктор из другого конструктора. Правда, скорее всего,
эффект будет не слишком заметен.
6 июн 21, 18:41    [22331961]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
petrav
явно вызвать конструктор из другого конструктора

Пару строк кода покажи, для примера.
6 июн 21, 23:04    [22332042]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
ъъъъъ
petrav
явно вызвать конструктор из другого конструктора

Пару строк кода покажи, для примера.

class Foo
{
public:
    Foo()
    {
        i = new int();
    }
    ~Foo()
    {
        delete i;
        i = nullptr;
    }
private:
    int *i;
};

class Bar
{
public:
    Bar(int i):
        m_int(i)
    {}
    Bar()
    {
        this->Bar::Bar(0);
    }
private:
    int m_int;
    Foo m_foo;
};
6 июн 21, 23:44    [22332051]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6690
petrav,

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

Вообще-то есть стандартный синтаксис для перенаправления в другой конструктор (начиная с C++11)
    Bar(int i);
    Bar()
      : Bar(0)
    {
    }
7 июн 21, 00:32    [22332055]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
Anatoly Moskovsky
petrav,

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

Вообще-то есть стандартный синтаксис для перенаправления в другой конструктор (начиная с C++11)
    Bar(int i);
    Bar()
      : Bar(0)
    {
    }

Так я на это и намекал, когда чуть выше написал, что «эффект будет не слишком заметен».
Я же специально пример с подвохом построил.

PS: Про делегирование конструкторов, да, я знаю.
7 июн 21, 00:39    [22332056]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ
Вах, очередное открытие...

Методы, оказывается, тоже можно как "auto" объявлять
	public:
		auto get_context() // В итоге: void *
		{
			return context;
		}

	private:
		void* context;

Может и можно, но практической ценности имхо ноль.
У меня такие auto ПЕРЕМЕННЫЕ во всех ЯП на три пять строчек кода. То есть в пределах видимости глаза.
7 июн 21, 09:35    [22332094]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Сегодня я использовал goto.
Напьюсь.
10 июн 21, 09:07    [22333582]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Коллеги, а вы используете майкрософтовское расширение try-finally https://docs.microsoft.com/ru-ru/cpp/cpp/try-finally-statement?view=msvc-160?
20 июн 21, 14:53    [22337899]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 9683
ъъъъъ,
21896029
20 июн 21, 20:52    [22337977]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
bk0010
Member

Откуда:
Сообщений: 5123
ъъъъъ
Коллеги, а вы используете майкрософтовское расширение try-finally https://docs.microsoft.com/ru-ru/cpp/cpp/try-finally-statement?view=msvc-160?
Нет (мне важна совместимость с gcc)
20 июн 21, 21:07    [22337984]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Пару дней назад обновилась MSVS 2019 до 16.10.2.
Появились ощутимые тормоза, смертельные зависания, сообщения о том, что у меня лицензия прострочена (при том, что у меня Community).
22 июн 21, 21:48    [22338893]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
ъъъъъ
Пару дней назад обновилась MSVS 2019 до 16.10.2.
Появились ощутимые тормоза, смертельные зависания, сообщения о том, что у меня лицензия прострочена (при том, что у меня Community).

Люди пишут, что помог возврат на последнюю сборку 16.9.*, отсюда: https://docs.microsoft.com/en-us/visualstudio/releases/2019/history
22 июн 21, 22:16    [22338896]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
А есть ли для MSVS развитые средства для автоматизации рефактринга?
Например, копи-пасте перенос метода из одного класса в другой. Или создание члена класса на лету так, чтобы не исправлять потом. Вот как в MMCE (Delphi).
ReSharper очень уж мало возможностей даёт...
26 июн 21, 19:58    [22340709]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
petrav
Member

Откуда:
Сообщений: 3011
ъъъъъ
А есть ли для MSVS развитые средства для автоматизации рефактринга?
Например, копи-пасте перенос метода из одного класса в другой. Или создание члена класса на лету так, чтобы не исправлять потом. Вот как в MMCE (Delphi).
ReSharper очень уж мало возможностей даёт...

Рефакторинг — это интеллектуальный процесс, его невозможно автоматизировать.
Копи-пасте — антипаттрен.

Создание члена класса на лету — это вообще что-то новое. Что вы имели ввиду?
26 июн 21, 21:46    [22340745]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
petrav
ъъъъъ
А есть ли для MSVS развитые средства для автоматизации рефактринга?
Например, копи-пасте перенос метода из одного класса в другой. Или создание члена класса на лету так, чтобы не исправлять потом. Вот как в MMCE (Delphi).
ReSharper очень уж мало возможностей даёт...

Рефакторинг — это интеллектуальный процесс, его невозможно автоматизировать.
Копи-пасте — антипаттрен.

Создание члена класса на лету — это вообще что-то новое. Что вы имели ввиду?

В своей книге Мартин Фаулер различает около 30 видов простого рефакторинга в том числе и
Extract Method, Move Field, Introduce Local Variable и эти методы вполне себе автоматизируются
средами. Не знаю насчет MSVS. Но должно быть.

Рефакторинги-же шаблонами проектирования (как у Джоша Кериевски) - более сложные
и здесь уже наверное IDE не поможет. Нужно ручное вмешательство человека.
26 июн 21, 23:19    [22340755]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
mayton
Не знаю насчет MSVS

А что ты используешь?
7 июл 21, 22:25    [22344804]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
Я уже давно не программирую на С++ за деньги. Поэтому MSVC мне не нужен.
7 июл 21, 22:51    [22344822]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
mayton
MSVC мне не нужен

Да я понял. :)
7 июл 21, 22:58    [22344825]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
wxFormBuilder, последний релиз v3.9.0, от 26 Oct 2018.
Однако, после релиза было 212 коммитов в git - репозитории. Формат файла программы в современном состоянии не полностью совместим с форматом от от 26 Oct 2018.
Строится MINGW, для работы требует тучу dll's, в общем - долго и скучно.

Если кому-то нужно, свежую сборку можно забрать здесь: https://cloud.mail.ru/public/FfCa/3gbdmdhsm
15 июл 21, 11:42    [22347539]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Please feel free
Please feel free to share this PDF with anyone for free,

latest version of this book can be downloaded from:
https://goalkicker.com/CPlusPlusBook


https://books.goalkicker.com/CPlusPlusBook/
15 сен 21, 19:28    [22372225]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
ъъъъъ
Интересно, как соотносится концепция "модуль == единица компиляции" с возможностью объявлять в модулях темплейты...
Для каждого случая реализации темплейта "единица" будет перекомпилироваться?

Пишут, что модули сперва компилируются предварительно, и да, модули могут экспортировать темплейты. И что экспорт — это не просто сохранение сигнатуры. Если экспортируется темплейт, то сохраняется весь его код, потому что позднее (при настройке шаблона) он понадобится. Таким образом, предкомпиляция сохраняет весь C++ код (в "бинарной" форме).
14 окт 21, 20:13    [22383899]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
ъъъъъ
Включил в ms vs 2017 опцию поддержки модулей. Версия компилятора C++: 1920, как раз пишут, что с этой версии поддержка модулей появилась.


Модули, я боюсь, никому не нужны, с ними проблем больше, чем без них...

Начать надо с того, что компилировать модули надо в определённом порядке.
26 окт 21, 20:22    [22388492]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6690
MasterZiv
Модули, я боюсь, никому не нужны, с ними проблем больше, чем без них...

Начать надо с того, что компилировать модули надо в определённом порядке.

Все утверждения сомнительные ))

Модули раз и навсегда решают такую проблему как Initialization Order Fiasco. Уже за одно это можно мириться с недостатками.

Ну и скорость компиляции существенно выше. Особенно перекомпиляции.
Ну а для "надо в определённом порядке" есть билд тулз, которые несомненно реализуют все что нужно для того чтобы модули можно было безболезненно использовать, как только основные компиляторы стабилизируют поддержку модулей.
26 окт 21, 20:47    [22388503]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
Мне кажется любой крупный проект рано или поздно должен подойти к концепции сборки "по-модульно".
Будут-ли это модули С++ или просто формальным разделением проекта на независимые части - неважно.
27 окт 21, 12:02    [22388653]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
А что это никто не бьёт в барабаны, и фанфары не трубят?

8 ноября официальный релиз MS VS 2022.

Теперь IDE - 64-разрядное приложение.
Тулчайны msvs2015, 2017, 2019 доступны из инсталлятора, "гарантирована бинарная совместимость".
Поддержка С++ версий 98..20, экспериментальная поддержка 23. Заявлена поддержка всех стабильных фич с++ 20, в т.ч. модули, корутины, концепты и т.д., особо отмечена возможность отладки корутин. В с++23 ожидается появление стандартной библиотеки с модулями и корутинами.
Развитие пакетного менеджера vcpkg.
Дальнейшее улучшение фичи "hot reload".
Дальнейшее уменьшение зависимостей между частями проекта (изменение в одном модуле не потребует полного ребилда).
Поддержка WSL2, экспериментальная поддержка libFuzzer (одна из библиотек поиска уязвимостей), устранена масса старых багов, добавлена масса новых.


17 ноя 21, 20:34    [22397197]     Ответить | Цитировать Сообщить модератору
 Re: Пятница  [new]
mayton
Member

Откуда: loopback
Сообщений: 52962
автор
Развитие пакетного менеджера vcpkg

Шикарно.
18 ноя 21, 00:22    [22397243]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / C++ Ответить