C++ and other lectures
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir Boosty автора: https://boosty.to/cpp_lects_rus
Ko'proq ko'rsatish📈 Telegram kanali C++ and other lectures analitikasi
C++ and other lectures (@cpp_lects_rus) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 014 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 12 157-o'rinni va Rossiya mintaqasida 63 447-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 10 014 obunachiga ega bo‘ldi.
27 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 52 ga, so‘nggi 24 soatda esa 4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 87.99% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 33.73% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 8 812 marta ko‘riladi; birinchi sutkada odatda 3 378 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 98 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent компилятор, c++, llvm, struct, compilers kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы.
Написать автору: @Tilir
Boosty автора: https://boosty.to/cpp_lects_rus”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 28 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
class X {
template <typename U> struct Hidden {};
};
template <typename T>
using Wrapper = typename X::template Hidden<T>;
int main() {
Wrapper<float> w;
}
https://godbolt.org/z/sMnec5nx4
В нём clang и gcc почему-то не выдают ошибок, хотя имя является скрытым. Тут хочется воскликнуть — ну наверное по стандарту открытость using зависит от него а не от того что он алиасит. Не торопитесь, читайте дальше.
Уберём шаблоны и получим пример [2].
class X {
struct Hidden {};
};
using Wrapper = typename X::Hidden;
int main() {
Wrapper w;
}
https://godbolt.org/z/q9TYMeaYo
Вроде он мало чем отличается, тоже using, но тут оба компилятора отказываются компилировать.
Теперь пойдём от [1] в другом направлении: заменим using на struct и получим пример [3].
class X {
template <typename U> struct Hidden {};
};
template <typename T>
struct Wrapper : X::template Hidden<T> {};
int main() {
Wrapper<int> w;
}
https://godbolt.org/z/Gs1s3z8qn
Оба компилятора отказываются компилировать. То есть using всё-таки важен? Ситуация становится интересней.
И теперь сделаем последний шаг: запишем пример [3], но не будем инстанцировать шаблон (т.е. уберём функцию main) и получим пример [4].
https://godbolt.org/z/9EM1avbxe
И внезапно тут мнения компиляторов расходятся. Clang выдаёт ошибку, тогда как gcc отлично компилирует.
Вопросы:
1. Обоснуйте с точки зрения стандарта чем отличается [1] от [2]
2. Обоснуйте с точки зрения стандарта чем отличается [1] от [3]
3. Обоснуйте с точки зрения стандарта какой из компиляторов прав в [4]?
Ответы кидайте в комментарии к посту. Ссылки на нормативные документы обязательны.
Призов не обещаю (кроме зрительских симпатий). Рекомендуется сначала подумать самостоятельно, потом заезжать в комментарии.
#questions