Lambda constexpr работает в msvc, но не в gcc ⇐ C++
Lambda constexpr работает в msvc, но не в gcc
Я написал следующую программу, которая компилируется с помощью msvc, но не с помощью gcc и clang. Демо
int main() { constexpr auto func = []()constexpr { return 1; }; auto i = []{return func();}; } Я хочу знать, какой компилятор находится здесь?
GCC говорит:
: В лямбда-функции: :3:28: ошибка: «func» не захвачен 3 | auto i = []{return func();}; | ~~~~^~ :3:15: примечание: лямбда не имеет значения по умолчанию 3 | auto i = []{return func();}; | ^ :2:20: примечание: здесь объявлено 'constexpr const main():: func' 2 | constexpr auto func = []()constexpr { return 1; }; |
Я написал следующую программу, которая компилируется с помощью msvc, но не с помощью gcc и clang. Демо
int main() { constexpr auto func = []()constexpr { return 1; }; auto i = []{return func();}; } Я хочу знать, какой компилятор находится здесь?
GCC говорит:
: В лямбда-функции: :3:28: ошибка: «func» не захвачен 3 | auto i = []{return func();}; | ~~~~^~ :3:15: примечание: лямбда не имеет значения по умолчанию 3 | auto i = []{return func();}; | ^ :2:20: примечание: здесь объявлено 'constexpr const main():: func' 2 | constexpr auto func = []()constexpr { return 1; }; |
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение