gug-bg-herd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Ключовата дума „онуй“ в C++


From: Dimitur Kirov
Subject: Re: Ключовата дума „онуй“ в C++
Date: Mon, 25 Dec 2023 08:31:09 +0200

Здравей,

Това е просто име на променлива. Понякога кръщават променливите така, когато 
желаното име
е заето като ключова за езика дума this<->that, class<->clazz и т.н. В случая 
нито
"this", нито "that" е подходящо, a по-скоро "from" или "source". 

Семантично е обяснено тук:
https://en.cppreference.com/w/cpp/language/move_constructor

Move constructor замества copy contructor в случаи, когато съдържанието трябва 
да се
премества, вместо да се копирва. 

----

За „окепазен по презюмция език“ съм съгласен. Жалко, че всички ученически 
олимпиади се
провеждат на този език. 

Поздрави,
Д.Киров

On Sun, 24 Dec 2023 22:57:44 +0200
Yavor Doganov <yavor@gnu.org> wrote:

> Здравейте,
> 
> За голямо мое съжаление, напоследък ми се налага да редактирам код на
> C-пляс-пляс.  Познанията ми за този язык са твърде оскъдни [1] и ми е
> страшно трудно, а наскоро попаднах на новото за мен „онуй“ (that).
> Горе-долу ми е ясно какво е туй „туй“ (this), но туй „онуй“ (that)
> виждам за пръв път.  Ето пример от пакета trafficserver, на който се
> натъкнах, докато се опитвам да разреша #999938 [2] в Дебиан:
> 
> В include/tscore/Regex.h е декларирано:
> 
> class Regex
> {
> public:
> ...
>   Regex()              = default; // Конструкторот, но нема дефиниция.
>   Regex(Regex const &) = delete; // No copying.  // Копи-конструкторот?
>   Regex(Regex &&that) noexcept;  // Що е това?
>   ~Regex(); // Деструкторот.
> ...
> private:
>   pcre *regex                = nullptr;
>   pcre_extra *regex_extra    = nullptr;
> };
> 
> А дефиницията на метода в src/tscore/Regex.cc е:
> 
> Regex::Regex(Regex &&that) noexcept : regex(that.regex), 
> regex_extra(that.regex_extra)
> {
>   that.regex       = nullptr;
>   that.regex_extra = nullptr;
> }
> 
> Какво прави този метод и каква е ролята на туй „онуй“ (that)?  Emacs
> не оцветява тази дума, така че това или е нещо съвсем ново, или въобще
> не е ключова дума, а приумица на авторите на trafficserver.  При
> всички случаи бих искал да знам за какво става въпрос.
> 
> Благодаря предварително!
> 
> [1] Даже бих казал, че човек с моите „познания“ и чиста съвест не би
>     се докоснал до такъв код, за да не го окепази, но аз не съм с
>     чиста съвест и освен това смятам, че C++ е окепазен по презумпция.
> [2] https://bugs.debian.org/999938
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]