News Grower

Независимое покрытие AI, стартапов и технологий.

Habr 26.03.2026 17:25 Developer Tools

Ночью все кошки серы, а using'и одинаковы

Одной из самых сложных частей C++ до сих пор считаются правила поиска имён, и ошибки связанные с name lookup проявляются обычно уже в рантайме. Код компилится и даже работает какое-то время, но при свете луны ведёт себя не так как ожидает программист. За простыми идентификаторами скрывается многоуровневая система об...

Ночью все кошки серы, а using'и одинаковы

Одной из самых сложных частей C++ до сих пор считаются правила поиска имён, и ошибки связанные с name lookup проявляются обычно уже в рантайме. Код компилится и даже работает какое-то время, но при свете луны ведёт себя не так как ожидает программист. За простыми идентификаторами скрывается многоуровневая система областей видимости, категорий имён и специальных правил, и очень многое в нашем текущем стандарте растёт прямиком из восьмидесятых, частенько без изменений. Давайте посмотрим как компилятор видит имена в C++, какие области видимости существуют и почему они ведут себя по-разному.В C++ есть несколько типов областей видимости, вы наверное сходу назовёте глобальное пространство имён, область параметров шаблона, область видимости класса и область параметров функции, но также есть блочная область видимости и область видимости перечислений. Между этими областями есть исторически сложившаяся асимметрия, которая частенько удивляет: два объявления using, которые вводят одно и то же имя в одну и ту же область видимости внутри пространства имён компилятор съест без возражений, но если попытаться сделать то же самое других областях видимости, то получим ошибку на повторное объявление. В серии статей про "нескучное программирование" я разбираю скользкие случаи и как мы докатились до такого. Это продолжение темы, начатой в "Важны ли компилятору имена", поэтому чтобы картинка была цельной, лучше пробежать её по диагонали.

Краткая сводка

В статье рассматриваются сложности правил поиска имён в C++, включая многоуровневую систему областей видимости и асимметрию поведения объявлений using, которые могут приводить к ошибкам даже после успешной компиляции.

Связанные теги

Компании и люди

C#

Линия сюжета

Продолжить следить за темой

Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.

[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди
Habr 28.03.2026 08:27 Developer Tools

[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди

«Палео». «Мясоед». «Пещерный человек». Какой бы термин вы ни предпочитали, некоторые из самых популярных диет последних десятилетий представляют собой возвращение к временам сот...

OpenAI хочет закупать термоядерную энергию. Что происходит?
Habr 28.03.2026 08:00 Developer Tools

OpenAI хочет закупать термоядерную энергию. Что происходит?

Мы уже говорили о том, как повсеместное распространение искусственного интеллекта связано с ростом цен на оперативную память. Кажется, пришло время обсудить еще один момент. Инф...

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики
Habr 28.03.2026 07:29 Developer Tools

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики

Мой ИИ-агент обходится мне в $20 в месяц. Ещё 3 месяца назад та же нагрузка стоила $200+. Не потому что я оптимизировал промпты или написал хитрую систему кэширования. А потому ...

Одно ядро для всех: строим современную ОС на Rust — от идеи до рабочего прототипа
Habr 28.03.2026 07:27 Developer Tools

Одно ядро для всех: строим современную ОС на Rust — от идеи до рабочего прототипа

В 2026 году написать операционную систему с нуля — это либо академическое упражнение, либо попытка решить реальную проблему. OptimaOS — второе: проект исследует, можно ли постро...

Обзор видеокарты Gigabyte GeForce RTX 5060 Ti EAGLE OC ICE 8G
Habr 28.03.2026 07:25 Developer Tools

Обзор видеокарты Gigabyte GeForce RTX 5060 Ti EAGLE OC ICE 8G

Сборка нового компьютера для знакомого осуществлялась с ориентацией на бюджет и максимальную эффективность каждого вложенного рубля. В поисках подходящей видеокарты рассматривал...

Страницы сущностей

C#

Рекламный слот

Article monetization slot

Reserved for contextual monetization inside article pages.

Explore options

Похожие статьи

Еще материалы, которые пересекаются по тегам, источнику или категории.

[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди
Habr 28.03.2026 08:27 Developer Tools

[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди

«Палео». «Мясоед». «Пещерный человек». Какой бы термин вы ни предпочитали, некоторые из самых популярных диет последних десятилетий представляют собой возвращение к временам сот...

OpenAI хочет закупать термоядерную энергию. Что происходит?
Habr 28.03.2026 08:00 Developer Tools

OpenAI хочет закупать термоядерную энергию. Что происходит?

Мы уже говорили о том, как повсеместное распространение искусственного интеллекта связано с ростом цен на оперативную память. Кажется, пришло время обсудить еще один момент. Инф...

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики
Habr 28.03.2026 07:29 Developer Tools

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики

Мой ИИ-агент обходится мне в $20 в месяц. Ещё 3 месяца назад та же нагрузка стоила $200+. Не потому что я оптимизировал промпты или написал хитрую систему кэширования. А потому ...

Еще материалы от Habr

Свежие публикации и продолжение темы от той же редакции.

Открыть страницу источника
[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди
Habr 28.03.2026 08:27 Developer Tools

[Перевод] Никакой «палеодиеты» не существовало: учёные выяснили, чем питались древние люди

«Палео». «Мясоед». «Пещерный человек». Какой бы термин вы ни предпочитали, некоторые из самых популярных диет последних десятилетий представляют собой возвращение к временам сот...

OpenAI хочет закупать термоядерную энергию. Что происходит?
Habr 28.03.2026 08:00 Developer Tools

OpenAI хочет закупать термоядерную энергию. Что происходит?

Мы уже говорили о том, как повсеместное распространение искусственного интеллекта связано с ростом цен на оперативную память. Кажется, пришло время обсудить еще один момент. Инф...

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики
Habr 28.03.2026 07:29 Developer Tools

[Перевод] Как я сократил расходы на ИИ на 70% тремя строчками логики

Мой ИИ-агент обходится мне в $20 в месяц. Ещё 3 месяца назад та же нагрузка стоила $200+. Не потому что я оптимизировал промпты или написал хитрую систему кэширования. А потому ...