Я пытаюсь использовать 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 ответ

Это результат принятого решения оставить место для оптимизаций. Соответствующий отчет об ошибке находится здесь в попытке возобновить обсуждение и конкретно упоминает ваш тип использования. Компиляция без оптимизации должна работать, хотя я знаю, что это неудачное предложение. Проблема в том, что лямбда находится в глобальном масштабе, поэтому любое решение, которое приводит ее в действие, должно быть хорошим.

Другие вопросы по тегам