Glossary: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(→‎N: add NRVO)
(→‎Q: add QoI)
Line 82: Line 82:


= Q =
= Q =
== QoI ==
Quality of Implementation
E.g. about an optimization that the C++ standard doesn't require, but users expect of their C++  implementation. Such as
* That std::copy over pointers and built-in types becomes no more than memmove/memcpy.
* That the compiler implements [[#NRVO]].
* That the std library doesn't call swap() when LHS and RHS alias each other.


== qsb ==
== qsb ==

Revision as of 16:15, 3 September 2024

This is a glossary of terms used in Qt discussions, code comments or commit messages. Feel free to add a stub entry if you run into one you can't make sense of, in hopes of someone else filling it in here.

For terms and concept names in documentation and messaging, see Qt Terms and Concepts.

A

ABI

Application Binary Interface

The part of the Qt libraries that the linker sees. The ABI is what affects #BC.

Contrast with #API.

API

Application Programming Interface

The part of the Qt libraries that the compiler sees. The API is what affects #SC.

Contrast with #ABI.

B

BC

Binary compatible or binary compatibility

Meaning the stability of #ABI.

See also #SC, #API, #ABI.

Build System

The set of project files and tools that are used to build Qt.

There's a separate Qt Build System Glossary.

D

DRY

Don't Repeat Yourself. Cf. https://en.wikipedia.org/wiki/Don%27t_repeat_yourself

See also #SCARY.

F

FF

Feature Freeze

A step in the Qt release cycle. See Qt Feature Freeze.

Used as a hashtag (#ff) on Gerrit to indicate that the change should be reviewed before the next FF.

N

NRVO

Named #RVO

In contrast to #RVO, the direct construction of a local object into the caller-allocated return value object, if it is known at compile-time which local object will be returned.

#QoI in all C++ versions. Most compilers do the optimization, but virtually all require a certain structure of the function, and are quick to disable the optimization otherwise.

See https://www.fluentcpp.com/2016/11/28/return-value-optimizations/ Section "The NRVO".

P

Pit Of Success

(Falling into the Pit Of Success)

Here: designing APIs such that users do the right thing without thinking

See https://english.stackexchange.com/questions/77535/what-does-falling-into-the-pit-of-success-mean

PMF

Pointer-to-Member Function, e.g. &foo::bar where foo is a class and bar() a member function.

Q

QoI

Quality of Implementation

E.g. about an optimization that the C++ standard doesn't require, but users expect of their C++ implementation. Such as

  • That std::copy over pointers and built-in types becomes no more than memmove/memcpy.
  • That the compiler implements #NRVO.
  • That the std library doesn't call swap() when LHS and RHS alias each other.

qsb

Qt Shader Baker https://doc.qt.io/qt-6/qtshadertools-qsb.html

QtCS

Qt Contributors' Summit

R

RVO

Return-Value Optimization

In contrast to #NRVO, the direct construction of a temporary argument of the return expression into the caller-allocated return value object.

#QoI up to C++14, mandated from C++17 onwards.

See https://en.wikipedia.org/wiki/Copy_elision#RVO

S

SC

Source compatible or source compatibility

Meaning the stability of the #API.

See also #BC, #API, #ABI.

SCARY

No-one can remember what the acronym stands for, not without googling, and even then it doesn't tell you much. Making a class or function template SCARY means to separate all that depends on the template arguments from all that doesn't depend on (some) template arguments, ensuring that identical code doesn't get recompiled over and over again for every instantiation of the template.

Cf. https://quuxplusone.github.io/blog/2019/08/02/the-tough-guide-to-cpp-acronyms/#scary-iterators

Originally merely coined for nested types like std::vector<T, A>::iterator (which never depends on A), it has come into use for other in-kind transformations, too, often being a special case of Extract Method or Extract Baseclass.

See also #DRY.

SEP

Someone else's problem. From Douglas Adam's Hitchhiker's Guide.

Cf. https://en.wikipedia.org/wiki/Somebody_else%27s_problem

SFINAE

Substitution Failure Is Not An Error

For details, see

  1. https://en.cppreference.com/w/cpp/language/sfinae
  2. https://quuxplusone.github.io/blog/2019/08/02/the-tough-guide-to-cpp-acronyms/#sfinae

SMF

Special Member Functions

See https://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions

T

TLC

Tender Loving Care (https://www.oxfordlearnersdictionaries.com/definition/english/tlc?q=TLC)

Used to group a set of smaller unrelated changes to a piece of code together in order to bring it up to current (Qt) standards.

Examples: https://codereview.qt-project.org/q/message:TLC

TQTC

The Qt Company

TTLOFIR

Things To Look Out For In Reviews