Живут ли не -локальные лямбда-выражения 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-

PyInstaller не загружает изображения PyQt в графический интерфейсУ меня были некоторые сложности с передачей моего сценария в исполняемый файл, но мне наконец удалось. Основная проблема заключается в том, что PyInstaller не загружает изображения в графический интерфейс. Вот так это должно выглядеть...

У меня были некоторые сложности с передачей моего сценария в исполняемый файл, но мне наконец удалось. Основная проблема заключается в том, что PyInstaller не загружает изображения в графический интерфейс.

Вот как это должно выглядеть:

How it should look like

Вот как это выглядит:

How it looks like

И я не могу найти проблему, это файл.spec:

a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'programa.py'],
             pathex=['img', 'C:\\Users\\Poblet\\ManGet\\HeyMang\\pyinstaller'])
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=1,
          name=os.path.join('build\\pyi.win32\\Hey Mang!', 'Hey Mang!.exe'),
          debug=False,
          icon='heymang.ico',
          strip=False,
          upx=True,
          console=False )
coll = COLLECT( exe,
               Tree('C:\\Users\\Poblet\\ManGet\\HeyMang\\pyinstaller\\img'),
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name=os.path.join('dist', 'Hey Mang!'))
app = BUNDLE(coll,
             name=os.path.join('dist', 'Hey Mang!.app'))

И он должен захватить эти изображения, как здесь сказано:

Warnings written to C:\Users\Poblet\ManGet\HeyMang\pyinstaller\Hey Mang!\warnHey Mang!.txt
checking PYZ
rebuilding outPYZ1.toc because outPYZ1.pyz is missing
building PYZ outPYZ1.toc
checking PKG
rebuilding outPKG3.toc because outPKG3.pkg is missing
building PKG outPKG3.pkg
checking EXE
rebuilding outEXE2.toc because Hey Mang!.exe missing
building EXE from outEXE2.toc
I: SRCPATH [('heymang.ico', None)]
I: Updating icons from ['heymang.ico'] to c:\users\poblet\appdata\local\temp\tmpr34zmp
I: Writing RT_GROUP_ICON 0 resource with 76 bytes
I: Writing RT_ICON 1 resource with 1128 bytes
I: Writing RT_ICON 2 resource with 4264 bytes
I: Writing RT_ICON 3 resource with 9640 bytes
I: Writing RT_ICON 4 resource with 16936 bytes
I: Writing RT_ICON 5 resource with 67624 bytes

И они есть в папке, но работать они по тем или иным причинам не будут.

Весь исходный код (за вычетом файлов PyInstaller )— это здесь .

Я ценю вашу помощь.

11
задан Ray 28 January 2014 в 14:57
поделиться