home.social

#special_identifiers — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #special_identifiers, aggregated by home.social.

fetched live
  1. CW: Ідентифікатори спеціального призначення в C++

    У C++ окрім ключових слів які завжди означають щось одне є ідентифікатори спеціального призначення які можна використовувати як звичайні ідентифікатори(назви), але у деяких конкретних місцях вони розуміються компілятором як ключове слово.

    Такими словами є final, override, import і module. Ці ідентифікатори можуть використовуватись як назви змінних, констант, функцій, класів/структур чи іншого, але у спеціальних місцях вони набувають властивостей ключового слова.

    import <iostream>;
    
    struct override {
    	int module;
    };
    
    int main() {
    	override final{4};
    	std::cout << final.module << std::endl;
    }
    

    Різні слова можна використовувати у різних місцях. Наприклад слова final, module і import не вийде використовувати у ролі назви класу, структури чи перечислення оскільки тут вони розуміються як ключові слова. Але це тільки у глобальному просторі імен якщо запхати клас у namespace, то все запрацює.

    import <iostream>;
    
    namespace x {
    		struct module {
    				int override;
    		};
    }
    
    int main() {
    		x::module final{4};
    		std::cout << final.override << std::endl;
    }
    

    Але щоб не плутати інших і себе також краще не використовувати їх так.

    #cpp #cxx #final #override #import #module #cpp20 #keywords #namespace #special_identifiers #ключові_слова #спеціальні_ідентифікатори