template <typename T>
T add(T a, T b)
{
// return(a+b);
}
//+------------------------------------------------------------------+voidOnStart()
{
Print("start");
// Print(add(1.0 , 2.0));
}
voidOnStart()
{
uchar buffer[];
string data = " test";
StringSetCharacter(data, 0, 0x81); // just an example, can be obtained in other waysStringToCharArray(data, buffer);
// buffer[0] = (uchar)data[0]; // correct/direct copyArrayPrint(buffer);
}
在编译这段代码时,不是应该有一个错误,即该函数应该返回一个值吗?
在编译这段代码时,不是应该有一个错误,即该函数应该返回一个值吗?
它应该
最有可能的是,你没有访问这个方法,而编译器也没有在可执行文件中包含这部分代码
应
最有可能的是,你没有访问过这个方法,而且编译器也没有将这个代码片段纳入可执行文件。
但如果我把Test()函数指定在同一个类中并以这种方式实现它。
int CMapManager::Test() { }
会出现错误,尽管我也没有在任何地方访问过这个功能。
但如果我在同一个类中指定Test()函数并这样实现它。
会出现错误,尽管我也没有在任何地方访问这个函数。
因为这个方法不是一个模板--没有模板
模板本质上是一种宏替换,在检测函数(类方法)的调用时,编译器插入必要的类型。
这种 "替换 "将 "生成 "具有特定数据类型的函数
这大约是它的运作方式
因为这个方法不是一个模板--没有模板
模板本质上是一种宏替换,在检测函数(类方法)调用时,编译器将替换必要的类型。
这种 "替换 "将 "生成 "具有特定数据类型的函数
这大约是它的运作方式
我大致上是这么看的,谢谢你。但问题是,为什么在 "生成前 "阶段,我们不应该告知应该返回int值?
毕竟,无论生成什么样的函数,它们都将返回一个int类型的值。
我大致上是这么看的,谢谢你。但是,问题是不同的,为什么在 "生成前 "阶段,我们不告知我们需要返回int值?
毕竟,无论生成什么样的函数,都会返回一个int类型的值。
你和我都去参加了第二次竞选--我们将对同一个问题给出同样的答案 )))
没有呼叫 - 没有模式应用,就是这样 - 这就是它的工作方式
)))
勾勒出脚本并进行尝试
像这样。
它是这样编译的,然后打开你的评论--会有错误。
我在什么地方漏掉了什么,总的来说,我在寻找这样一个代码中的陷阱。
2020.04.12 01:40:16.652 tst (EURUSD,H1) 0.00000 1.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 2.00000 3.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 4.00000 5.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 6.00000 7.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 8.00000 9.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 10.00000 11.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 12.00000 13.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 14.00000 15.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 16.00000 17.00000
2020.04.12 01:40:16.652 tst (EURUSD,H1) 18.00000 19.00000
创建一个二维数组很容易,而且没有复制构造函数描述的赋值可以开箱即用,这很令人困惑
我的代码中哪些地方可能无法正常工作?
不允许反编译!
以防万一,有没有办法使StringToCharArray 函数不经转换而复制字节?试过所有的CP_XXX,在一般情况下都不能提供1对1的副本。这里有一个例子。
获得0x81字节的方式可以不同,这里为了简单起见,设置为 "正面"。如果你不使用手动逐个字节的复制(如未提及的那一行),StringToCharArray函数将129字节(0x81)转换为63字节。
到目前为止,我不得不用一个循环来代替StringToCharArray,但也许有一个秘密的CP_XXX?
以防万一,有没有办法使StringToCharArray函数不经转换而复制字节? 试过所有的CP_XXX,在一般情况下都不能提供1对1的副本。这里有一个例子。
获得0x81字节的方式可以不同,这里为了简单起见,设置为 "正面"。如果你不使用手动逐个字节的复制(如未提及的那一行),StringToCharArray函数将129字节(0x81)转换为63字节。
我不得不暂时用一个循环来代替StringToCharArray,但也许有一个秘密的CP_XXX?
2020.04.12 15:57:37.812 tst1 (EURUSD,H1) 129 32 116 101 115 116