Локальные классы и шаблонные функции
От: Roman Odaisky Украина  
Дата: 09.09.06 14:36
Оценка:
На этом форуме периодически заявляют о том, что один из недостатков Ц++ — отсутствие локальных функций. Мало помощи, мол, и от локальных классов — для использования их в шаблонных функциях требуется соответствующее (-ая? -ий?) linkage, т. е. приходится объявлять такие вспомогательные классы вне функции. Но я давно уже пишу вот так:
int x[3] = { 0, 1, 2 };

void f()
{
    struct Local
    {
        static int sq(int x)
        {
            return x * x;
        }
    };

    std::transform(x, x + 3, x, &Local::sq);
},
и так даже работает.

Можно ли посмотреть на место в стандарте, регламентирующее поведение в такой ситуации? Так можно вообще?
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.