Russian Qt Forum
Апрель 26, 2024, 11:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 58
1  Qt / Qt-инструментарий / Re: Автоматическое форматирование кода : Сентябрь 28, 2020, 14:16
да, о хедерах я не подумал=)

Если проект собирается CMake'ом, то более подробную структуру проекта можно получить с помощью cmake-file-api, там и хидеры и исходники перечислены. Сгенерировать структуру проекта не сложно, но я бы не сказал, что просто и тривиально, одной командой не отделаешься. Проще будет каким-нибудь find'ом в папке проекта список файлов получить.

В самом креаторе явно есть средства, чтобы получить все файлы проекта и скопом их отформатировать. Но вот такую фичу для него, похоже, ещё никто не запилил.
2  Qt / Qt-инструментарий / Re: Автоматическое форматирование кода : Сентябрь 28, 2020, 13:54
Есть же compilation database и jq. Выцепить файлы проекта задача тривиальная, нет?

Как один из вариантов получения списка файлов проекта, может быть и тривиальная. Но в compilation database разве не только *.cpp файлы перечислены? Можно её сгенерировать так, чтобы и *.h тоже там были?
3  Qt / Qt-инструментарий / Re: Автоматическое форматирование кода : Сентябрь 28, 2020, 13:36
ClangFormat plugin in Qt Creator 4.9 в коробке, вроде как. Я пользуюсь, вполне нормально.

а шланг может (без креатора) все исходные файлы проекта в папке и в подпапаках одной командой переформатировать?

ClangFormat, можно подать на вход несколько файлов. Список файлов в папке/подпапках можно получить другой утилитой, unix-way....
4  Программирование / С/C++ / Re: C++ Object Token Library : Август 19, 2020, 10:59
Про отношения между объектами в картинках: unique_ptr, shared_ptr, weak_ptr, or reference_wrapper for class relationships.
5  Qt / Вопросы новичков / Re: Qt DLL : Август 03, 2020, 12:24
Installing Qt for Windows: Step 3: Set the Environment variables.
Qt for Windows - Deployment.
6  Программирование / С/C++ / Re: Default constructor : Июль 06, 2020, 12:16
На мой взгляд, лучше делать это явно:
Код
C++ (Qt)
struct CDrawInst {
// data
 CMaterial * m_material = nullptr;
 int m_count = 0;
...
};
 

Можно, конечно, перестраховаться, но Value initialization:
Цитировать
This is the initialization performed when a variable is constructed with an empty initializer.
...
The effects of value initialization are:
1) if T is a class type with no default constructor or with a user-provided or deleted default constructor, the object is default-initialized;
2) if T is a class type with a default constructor that is neither user-provided nor deleted (that is, it may be a class with an implicitly-defined or defaulted default constructor), the object is zero-initialized and then it is default-initialized if it has a non-trivial default constructor;
3) if T is an array type, each element of the array is value-initialized;
4) otherwise, the object is zero-initialized.

Так что int m_count{} должно в 0 инициализироваться.
7  Программирование / С/C++ / Re: Default constructor : Июль 06, 2020, 11:44
Заметим что по приведенной ссылке конкретно приведенного Вами примера нет (как-то не очень хорошо документируют)

По приведённой ссылке примеры, что поля класса в принципе можно инициализировать (начиная с С++11). А способов инициализации в С++ до фига, и в них чёрт ногу сломит Улыбающийся. Например, агрегат  можно целиком "занулить" так (без явной инициализации полей класса):

Код
C++ (Qt)
struct CDrawInst {
// data
 CMaterial * m_material;
 int m_count;
...
};
 
void test()
{
 CDrawInst inst{};
 assert(inst.m_material == nullptr);
 assert(inst.m_count == 0);
}

Но если CDrawInst перестанет быть агрегатом:
Код
C++ (Qt)
struct CDrawInst {
 CDrawInst() {};
// data
 CMaterial * m_material;
 int m_count;
...
};
то "зануление" inst в такой форме записи (CDrawInst inst{};) может и не происходить.
8  Программирование / С/C++ / Re: Default constructor : Июль 05, 2020, 14:48
CDrawInst() = default это делает? Или это уже и так делается с новыми стандартами?
Нет.

Вопрос был можно ли как-то занулять "автоматом", как делают template для указателей, int и др

Совсем автоматом нельзя, надо скобочки руками писать (Member initialization.):
Код
C++ (Qt)
struct CDrawInst {
// data
 CMaterial * m_material{};
 int m_count{};
...
};
9  Программирование / С/C++ / Re: C++ Object Token Library : Июнь 30, 2020, 11:02
А вообще нужна обёртка-токен над объектом-по-месту? Есть варианты использования, когда без неё тяжко?

Она нужна только для обеспечения однообразия интерфейса доступа к значению, чтобы вариант heap_* легко можно было заменить на inplace_* при необходимости.

Кстати, добавил в библиотеку raw::unique[_single] и raw::unique_optional для "inplace-объектов".
10  Программирование / С/C++ / Re: C++ Object Token Library : Июнь 29, 2020, 12:14
"C++ Move Semantics - The Complete Guide" now Feature Complete. Всё, что нужно знать про перемещение. Всего-то страниц 200 Улыбающийся.
11  Qt / OpenGL / Re: Стакан воды : Июнь 06, 2020, 13:09
А вода из-под крана или из чайника?
12  Qt / Уроки и статьи / Re: Использование VS Code для написания приложений на Qt (Eng.) : Июнь 01, 2020, 13:38
Это, похоже, дело привычки Улыбающийся. У меня похожие ощущения, когда после Qt Creator'a нужно что-то в Visual Studio сделать.
13  Qt / Уроки и статьи / Re: Использование VS Code для написания приложений на Qt (Eng.) : Июнь 01, 2020, 12:47
Кстати, QtCreator мне тоже после CLion не заходит, жутко неудобный.

А в чём неудобства заключаются?
14  Qt / Вопросы новичков / Re: переобъявить переменную : Май 29, 2020, 14:05
Бьерн Страуструп: "Язык программирования С++", "6.2 Производные классы".
Указатели и ссылки на производные типы.
15  Qt / Вопросы новичков / Re: html-форматирование в QTableView : Май 21, 2020, 16:47
Честно говоря столько времени "убил" на эту тему... А еще нужно сделать сохранение в разных форматах и справку... Может когда-нибудь я к этому вернусь.

Там может делов на:
Код
C++ (Qt)
style->drawItemText(&painter, lr.toRect(), flags, opt.palette, isEnabled(), d->text, foregroundRole());

Если не смущает, что в paint() каждый раз создаётся и уничтожается QLabel, то можно не заморачиваться. Но меня бы это, как минимум, насторожило.
Страниц: [1] 2 3 ... 58

Страница сгенерирована за 0.144 секунд. Запросов: 23.