以下是明确界定的吗?
std::vector<std::string> v{"test"};
v.assign(1, v.at(0));
Run Code Online (Sandbox Code Playgroud)
如果旧序列在构造新序列之前被销毁,则传递给的引用assign将无效,因此程序将是格式错误的.
标准是否提到这种情况(值是旧序列的一部分)或类似的任何地方,使这个结构格式良好?我找不到任何东西.
从VS2010附带的Dinkumware标准库实现的副本(_Assign_n内部称为assign):
void _Assign_n(size_type _Count, const _Ty& _Val)
{ // assign _Count * _Val
_Ty _Tmp = _Val; // in case _Val is in sequence
erase(begin(), end());
insert(begin(), _Count, _Tmp);
}
Run Code Online (Sandbox Code Playgroud)
评论
如果_Val是顺序的
建议标准明确规定分配一个属于当前序列的元素是格式正确的,或者Dinkumware的实现只是试图变得聪明;)
哪一个?
虽然函数的名称在isNaN语义上与值相关isNaN,但本机实现会返回true一些非NaN对象,如undefined或{}.
isNaN(undefined);
=> true
Run Code Online (Sandbox Code Playgroud)
我认为,例如,下划线的实现更加直观/合理:
_.isNaN(undefined);
=> false
Run Code Online (Sandbox Code Playgroud)
为什么ECMA标准规定了这种违反直觉的行为?
为什么他们不设计只isNaN返回要测试的值是否
真的并且在单独的函数上测试convertable-to-number的负担呢?true isNaNisNumber
这样做会带来更多优势,例如在测试数字时没有双重否定:
if (isNumber(x)) { } // if x is a number
Run Code Online (Sandbox Code Playgroud)
代替
if (!isNaN(x)) { } // if x is not not a number
Run Code Online (Sandbox Code Playgroud)
由于他们将Number.isNaN()在ECMAScript 6中引入(它完全符合你的期望),看起来有更多的人这样想.
那么,为什么他们首先设计isNaN它的方式呢?这只是一个错误的决定还是有充分的理由这样做?
我正在开发一个小类,使用我的重载方法,如下所示:
/// <summary>
/// some description about myMethod
/// </summary>
/// <param name="arg1"></param>
/// <param name="arg2"></param>
/// <returns></returns>
public string myMethod(string arg1, string arg2) { };
public string myMethod(string arg1){};
Run Code Online (Sandbox Code Playgroud)
问题是采用一个参数的方法没有在标签中显示描述。我应该将相同的摘要标签单独添加到第二种方法中吗?我觉得有点烦人,因为 myMethod 描述应该有相同的标签描述,尽管参数描述可能会有所不同。
有没有办法让重载方法共享一个描述?
我尝试使用以下签名调用函数:
I32 contour8(image *a, I32 x0, I32 y0, I32 dir, I32 thr, U32 lng, U32 **dst);
Run Code Online (Sandbox Code Playgroud)
使用此代码:
int posx = 100, posy = 100, dx = 300, dy = 300;
long length = 5000;
int threshold = 125;
int lx, x0 = 0, y0 = 0;
int res1 = 0, res2 = 0, *rlc, *input, i;
long dest1, dest2, desttemp, addr;
char c;
image Area;
desttemp = dest1;
res1 = contour8(&Area, x0, y0, ~2, threshold, length, &desttemp);
Run Code Online (Sandbox Code Playgroud)
但是在编译时我得到以下错误:
error argument …Run Code Online (Sandbox Code Playgroud) c++ ×2
c ×1
c# ×1
ecmascript-6 ×1
javascript ×1
methods ×1
overloading ×1
standards ×1
summary ×1