我有以下构造函数:
MyItem(std::initializer_list<double> l) {
std::cout << "l size " << l.size() << ")" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
以后用双花括号调用:
MyItem{{}}
Run Code Online (Sandbox Code Playgroud)
结果l.size()给出的是1.
这种行为背后的机制是什么?
似乎嵌套的{}扮演的是唯一元素的默认构造函数,但我不太明白为什么以及类型推导在这里如何工作.
给定两条路径,如果它们指向同一个文件,我必须进行比较.在Unix中,这可以完成os.path.samefile,但正如文档所述,它在Windows中不可用.模拟此功能的最佳方法是什么?它不需要模拟常见情况.就我而言,有以下简化:
现在我使用以下内容:
def samefile(path1, path2)
return os.path.normcase(os.path.normpath(path1)) == \
os.path.normcase(os.path.normpath(path2))
Run Code Online (Sandbox Code Playgroud)
这个可以吗?