本地函数定义是非法的
Local function definition are illegal
所以我在C++中调用函数,因为我对这种语言还很陌生,而且我已经在这个错误上停留了大约 20 分钟,我在任何地方都找不到答案。它不断给我错误:error C2601: 'TimesTwo : local function definitions are illegal
,我的Test
函数也是如此。
#include <iostream>
using namespace std;
int TimesTwo(int num1);
int Test(int a);
int main()
{
int TimesTwo(int num1)
{
int result;
result = num1 * 2;
return result;
}
int Test(int a)
{
int result;
int num1;
cin >> num1;
result = TimesTwo(num1);
return result;
}
return 0;
}
您在main
函数中具有Test
和TestTwo
函数。
在main
例程之外定义函数。
虽然上述本地函数定义是非法的C++但通过 lambda 支持本地函数。以下内容在 C++11 及更高版本中是合法的。
#include <iostream>
using namespace std;
int main()
{
auto TimesTwo = [](int num1)
{
int result;
result = num1 * 2;
return result;
};
auto Test = [&TimesTwo](int a)
{
int result;
int num1;
cin >> num1;
result = TimesTwo(num1);
return result;
};
using fp = int (*)(int);
fp f1 = TimesTwo; // non-capturing lambda can be converted to function pointer.
return 0;
}
lambda 的一个有用功能是,不捕获任何内容的 lambda 可以转换为函数指针。
只是为了涵盖标题中提到的问题:通常此错误意味着您缺少关闭先前功能的"}"。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 部分定义/别名模板模板参数
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- #为""定义宏;静态";针对不同的上下文
- 如何确保C++函数在定义之前声明(如override关键字)
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 为什么派生类的这个定义是非法的
- 自我复制、保护和破坏本地函数定义是非法的
- 为什么使用构造函数调用表示法定义指向指针变量的指针是非法的
- 错误 C2601:"Name":本地函数定义是非法的
- 第二阶段的本地函数定义非法
- 错误 C2601:'main':本地函数定义非法 - MS VS 2013 编译器
- C++括号和格式问题(未声明的标识符,本地函数定义是非法的)
- 本地函数定义是非法的
- 使用带有自定义对齐分配器实现的最新g++,使用SSE和-O3选项编译时出现非法指令(核心转储)
- 错误 C2601:'BlackOps2':本地函数定义是非法的
- C++ 代码错误(非法成员初始化、'class'类型重定义、'return':无法转换)
- 为什么指向未定义结构的指针在C和c++中有时是非法的