C ++ Построение статического лямбда-члена типа шаблона - PullRequest
0 голосов
/ 18 октября 2018

У меня есть класс, который содержит статический член, член является лямбда-выражением.Лямбда имеет фиксированные аргументы, но может иметь разные захваты.Вот тут и возникает проблема. Этот статический член не может быть конструируемым по умолчанию.

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

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

То, что у меня есть, но мне не нравится, это:

РЕДАКТИРОВАТЬ 1: улучшенный пример Более полный пример можно найти здесь: https://wandbox.org/permlink/UMwsXSR6c2QYleiU

РЕДАКТИРОВАТЬ 2: дополнительно улучшенный пример Улучшенная версия выше: https://wandbox.org/permlink/VTvGNlFRCNYG4J00

РЕДАКТИРОВАТЬ 3: Исправлена ​​ошибка с return_t https://wandbox.org/permlink/tl4BaH1zbutMV2nU

1 Ответ

0 голосов
/ 18 октября 2018

Возможно, вы захотите сделать что-то вроде этого

template <class T>
class StaticWrapper
{
    static T* t = nullptr;
    StaticWrapper(T&& tt) { 
        static T ttt {tt};
        t = &ttt;
    }
};

Та же идея, но без привередливых приведений и размещения новых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...