Имеется ли в C ++ 11 какая-либо поддержка локальных функций?

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

например:

Я могу объявить тип в теле функции, даже инициализировать это как таблица значений. Но я не могу создать вспомогательную функцию, которая работает с этим типом данных - потому что я не могу объявить функцию в функции, и я не могу ссылаться на этот тип данных вне функции, потому что он доступен только в этой области.

Бывают случаи, когда довольно просто извлечь тип данных из функции и определить там мой тип данных и вспомогательные функции (область локального файла) - но бывают случаи, когда это не совсем правдоподобное решение - например, при инициализации таблицы встроенными лямбдами, которые ссылаются на локальные переменные области видимости (или this).

Есть идеи, будет ли поддержка локальных функций уже определена, или почему они трудны для реализации составителями компиляторов и, следовательно, не являются частью стандарта?

24
задан Mordachai 9 November 2011 в 20:09
поделиться