C++ удивил (хотя казалось что уже нечем)

Jul 22, 2014 19:43

В Линкедине, в группе C++, какой-то индус (ага - да - уже смешно) пожаловался что дескать в следующем коде, в блоке catch недоступны локальные переменные функции:

void foo(int x) try
{
     int y = 2;
     throw 3;
}
catch(int e)
{
     x = e;
}

Я уже хотел поржать над глупым индусом, но оказалось что он не настолько уж и неправ: такая запись реально валидна. Хотя индус и мог догадаться что те переменные определены внутри блока, и соответственно, естественно не могут быть доступны в блоке catch: это же очевидно. При чем даже джуниору должно быть очевидно. Но вот накой черт, джуниор лепит такую эзотерику - вопрооос. Так что "индус - такой идус" :)

Ну и что-же по поводу записи. Как пишут люди - она даже используется на практике. Но лично я, ничего подобного ниразу не встречал. Хотя и аутсорсом занимался в том числе. А ведь там всякое может встретится: надо быть готовым, чисто мозгом распарсить любую эзотерическую конструкцию. Да и сам я не думал что обычно-тупой с++-сный парсер (пофиг от какого вендора) - способен проглатить такое: даже в голову не приходила мысль пробовать наворачивать такую конструкцию.

люди человеки, development, программизмы, c++

Previous post Next post
Up