Я пытаюсь использовать vlog внутри статической лямбы, что дает мне ошибку: выражения-выражения не допускаются ни в функциях, ни в списках аргументов шаблона.
Я написал глобальную статическую лямбду следующим образом:
static auto x = [] (const std::string& y){
VLOG(3) <<" y:" <<y;
};
это дает мне эту ошибку в заявлении VLOG.
statement-expressions are not allowed outside functions nor in template-argument lists
1 ответ
Это результат принятого решения оставить место для оптимизаций. Соответствующий отчет об ошибке находится здесь в попытке возобновить обсуждение и конкретно упоминает ваш тип использования. Компиляция без оптимизации должна работать, хотя я знаю, что это неудачное предложение. Проблема в том, что лямбда находится в глобальном масштабе, поэтому любое решение, которое приводит ее в действие, должно быть хорошим.