Size: a a a

2020 February 17

Е

Егор in Qt
Bohdan Bessonov
А можно этот пример объяснить для общего развития?
(Мув скастует лвалуе реф в рвалуе реф, почему это разрушит строку? Мув же не гарантирует разрушение?)
сработает мув конструктор у строки?
источник

BB

Bohdan Bessonov in Qt
Егор
сработает мув конструктор у строки?
А, и он как раз и мувнет, логично. Спасибо
источник

AS

Anatoly Shirokov in Qt
Bohdan Bessonov
А можно этот пример объяснить для общего развития?
(Мув скастует лвалуе реф в рвалуе реф, почему это разрушит строку? Мув же не гарантирует разрушение?)
сорри, я не дописал eat:
template<typename T>
void eat(T&& v) {
   T t = std::move(v);
}
источник

BB

Bohdan Bessonov in Qt
Anatoly Shirokov
сорри, я не дописал eat:
template<typename T>
void eat(T&& v) {
   T t = std::move(v);
}
А, ну так конечно) на муве потеряем «универсальность» универсальной ссылки и как бы все
Понятно, спасибо
Остально поспрашиваю в сапапро про темп обьекты
источник

AS

Anatoly Shirokov in Qt
В итоге, бездумная подмена std::forward на std::move может банально испортить аргументы в очереди сообщений, как в примере выше у @oficsu
источник

O

Ofee in Qt
Anatoly Shirokov
В итоге, бездумная подмена std::forward на std::move может банально испортить аргументы в очереди сообщений, как в примере выше у @oficsu
Всё же, полагаю, у меня что-то другое сломано, я сейчас сделал так:
inline void operator()(T... args) const {
   QMetaObject::invokeMethod(
       context,
       [=]() mutable {
           (*callback)(std::move(args)...);
        },
        Qt::ConnectionType::QueuedConnection
   );
}
В данном случае, так или иначе конструктор перемещения вызывается только после копирования. Но падает оно точно так же. Полагаю, мой код всё же был корректен. Сломаться это может только если у какого-то типа странным образом реализованы конструкторы копирования и перемещения, пока что гадаю, может ли это быть связано с COW в контейнерах Qt, хотелось бы надеяться, что с ними всё хорошо
источник

AS

Anatoly Shirokov in Qt
Ofee
Всё же, полагаю, у меня что-то другое сломано, я сейчас сделал так:
inline void operator()(T... args) const {
   QMetaObject::invokeMethod(
       context,
       [=]() mutable {
           (*callback)(std::move(args)...);
        },
        Qt::ConnectionType::QueuedConnection
   );
}
В данном случае, так или иначе конструктор перемещения вызывается только после копирования. Но падает оно точно так же. Полагаю, мой код всё же был корректен. Сломаться это может только если у какого-то типа странным образом реализованы конструкторы копирования и перемещения, пока что гадаю, может ли это быть связано с COW в контейнерах Qt, хотелось бы надеяться, что с ними всё хорошо
Через [=] move корректен
источник

BB

Bohdan Bessonov in Qt
Open Source Usage Obligations  

The majority of the Qt modules are available under the LGPL v3 and GPL v3 open source license. When developing under this license your obligations are to:

   Provide a re-linking mechanism for Qt libraries


что имеется в виду под re-linking? не линковать статикой, чтоб юзер смог подменить Qt.dll?
источник

NK

ID:0 in Qt
источник

RL

Roman Levkovych𓅝 in Qt
Всем привет. У меня в одном файле отказывается находить QQmlApplicationEngine, хотя в другом файле все отлично работает. Как можно починить?

Работает оно примерно так:
project.pro
|
|  src.pri
|       |
|        _ тот файл, где не находит
|
main.cpp - здесь находит


Проблема в pri-файле, или как?
источник

AS

Anatoly Shirokov in Qt
Roman Levkovych𓅝
Всем привет. У меня в одном файле отказывается находить QQmlApplicationEngine, хотя в другом файле все отлично работает. Как можно починить?

Работает оно примерно так:
project.pro
|
|  src.pri
|       |
|        _ тот файл, где не находит
|
main.cpp - здесь находит


Проблема в pri-файле, или как?
Config+=qtquick
источник

RL

Roman Levkovych𓅝 in Qt
не помогло
источник

МВ

Макс Воробьев in Qt
Roman Levkovych𓅝
Всем привет. У меня в одном файле отказывается находить QQmlApplicationEngine, хотя в другом файле все отлично работает. Как можно починить?

Работает оно примерно так:
project.pro
|
|  src.pri
|       |
|        _ тот файл, где не находит
|
main.cpp - здесь находит


Проблема в pri-файле, или как?
а настройки конфига где делаешь?
источник

МВ

Макс Воробьев in Qt
в .pri ?
источник

МВ

Макс Воробьев in Qt
перед импортом .pri ?
источник

RL

Roman Levkovych𓅝 in Qt
Макс Воробьев
перед импортом .pri ?
перед импортом .pri в .pro
источник

МВ

Макс Воробьев in Qt
Roman Levkovych𓅝
перед импортом .pri в .pro
добавь Config+=qtquick в сам при
источник

RL

Roman Levkovych𓅝 in Qt
не помоглої
источник

МВ

Макс Воробьев in Qt
Roman Levkovych𓅝
не помоглої
Config+=qtquick qml
источник

МВ

Макс Воробьев in Qt
?
источник