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

Недавняя сборка GCC 4.8 дает следующий код в заголовочном файле:

auto L = [](){};

struct S
{
    decltype(L) m;
};

следующее предупреждение:

test.hpp:3:8: warning: 'S' has a field 'S::m' whose type uses the anonymous namespace [enabled by default]
 struct S
        ^

Почему компилятор рассматривает тип лямбды для использования анонимного пространства имен? Я сделал лямбду глобальной, я нигде не использовал анонимное пространство имен.

ОБНОВЛЕНИЕ:Компиляция выдает одно и то же предупреждение, даже если я помещаю лямбду в явное пространство имен, например:

namespace N
{
    auto L = [](){};
}

struct S
{
    decltype(N::L) m;
};

ОБНОВЛЕНИЕ 2:На самом деле кажется, что даже лямбда-выражения класса имеют ту же проблему :

class N
{
    static constexpr auto L = [](){};
};

struct S
{
    decltype(N::L) m;
};
-. 121 ---1576260- как работает jquery в приложении Rails 3? В моем приложении rails 3 у него ://= требуется jquery //= требуется jquery _ujs //= требуется _дерево. //= требуется jquery -ui И это прекрасно работает. Но я не понимаю, как это работает. Кажется, я понимаю третий...

В моем приложении rails 3 он имеет:

//= require jquery
//= require jquery_ujs
//= require_tree.
//= require jquery-ui

И это работает нормально. Но я не понимаю, как это работает. Я думаю, что понимаю третью строку, которая, как мне кажется, добавляет в этот файл все, что находится в том же каталоге, что и этот файл (/app/assets/javascript ). Но как быть с первой строкой? Где взять файл jquery? Я не вижу его ни в одном из каталогов, упомянутых в комментарии в начале файла, в частности:

// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.

Куда рельсы идут, чтобы получить файл javascript jquery?

9
задан snowguy 18 July 2012 в 05:49
поделиться