我是Emacs的新手.我用谷歌搜索了这个但没有好的答案.其中一个是Ctrl-n Ctrl-a Backspace这有效,但很愚蠢.是否有一种快速简单的方法将一行线加入一行?
实际上,我现在可以使用Esc-q自动填充段落,但是如果没有UNDO,我怎么能让它恢复呢?
每次我需要使用时std::bind,我最终都会使用lambda.那么我std::bind什么时候应该使用?我刚刚从一个代码库中删除它,我发现lambdas总是更简单,更清晰std::bind.是不是std::bind完全没必要?它不应该在将来被弃用吗?我std::bind什么时候应该更喜欢lambda函数?(必须有一个原因,它与lambda一起进入标准.)
我也注意到越来越多的人熟悉lambdas(所以他们知道lambdas做了什么).但是,很少有人熟悉std::bind和std::placeholders.
根据PEP 632,distutils将被正式标记为已弃用,并且在 Python 3.12 中,它将被删除。我的产品很快就会支持 Python 3.10,我不想忍受弃用警告,所以我想删除现在的引用distutils。问题是我找不到好的、全面的文档来系统地让我知道distutils模块 C、D 和 E 中的 A 可以替换为 B。 PEP 中的迁移建议出人意料地粗略,我还没有\没有找到 的标准文档,或者任何需要替换的distutils模块(例如?)的标准文档,这可以让我填补空白。我也不确定如何查看已安装的标准发行版的内容(即物理目录和文件)以便为自己回答这些问题。setuptoolsdistutils
“迁移建议”部分说:
\n\n\n对于这些模块或类型,
\nsetuptools是最好的替代品:\n
\n- \n
distutils.ccompiler- \n
distutils.cmd.Command- \n
distutils.command- \n
distutils.config- \n
distutils.core.Distribution- \n
distutils.errors...
\n对于这些模块或函数,请使用所示的标准库模块:
\n...
\n\n
\n- \n
distutils.util.get_platform\xe2\x80\x94 使用platform模块
据推测,这意味着setuptools这些模块或类型要么有直接替代品,要么有接近的替代品(尽管我不确定如何验证这一点)。例如,也许setuptools.command.build_py可以替换distutils.command.build_py. 那是对的吗?无论如何,这些又如何呢?
distutils.core.setup我有以下项目结构我想打包:
??? doc
? ??? source
??? src
? ??? core
? ? ??? config
? ? ? ??? log.tmpl
? ? ??? job
? ??? scripts
? ??? test
??? tools
Run Code Online (Sandbox Code Playgroud)
我想包core下src,但排除test.这是我尝试失败的原因:
setup(name='core',
version=version,
package_dir = {'': 'src'}, # Our packages live under src but src is not a package itself
packages = find_packages("src", exclude=["test"]), # I also tried exclude=["src/test"]
install_requires=['xmltodict==0.9.0',
'pymongo==2.7.2',
'ftputil==3.1',
'psutil==2.1.1',
'suds==0.4',
],
include_package_data=True,
)
Run Code Online (Sandbox Code Playgroud)
我知道我可以排除test使用MANIFEST.in文件,但如果你能告诉我如何使用setup和,我会很高兴 …
作为频繁使用者cellfun(..., 'UniformOutput', false),我惊讶地发现后两个参数可以输入为cellfun(..., 'un', 0).这立即缩短了我的代码.我的问题是,那里还有其他类似的快捷方式/别名吗?
这似乎没有在MathWorks网站上记录.淘气!
处理const向量时,以下方法不起作用:
const std::vector<std::string> v;
v.push_back("test"); // error: v cannot be modified
Run Code Online (Sandbox Code Playgroud)
相反,您必须在构造它的同一行初始化向量.但是,即使有这个限制,boost::make_transform_iterator也可以在将它们推入v之前轻松地使用另一个vector的元素.在这个例子中,convert是一个返回输入元素的转换版本的一元函数:
auto beg = boost::make_transform_iterator(args.begin(), convert);
auto end = boost::make_transform_iterator(args.end(), convert);
const std::vector<const char*> vc { beg, end };
Run Code Online (Sandbox Code Playgroud)
我已经看了可用的功能<iterator>,但没有看到等效功能.它只是缺失或标准库没有它的原因吗?
我正在使用"include"函数(ex"include'head2.php'"或"include'class.users.php'")在我的网站中添加标题或会话类.我真的不记得在哪里,但我听说黑客滥用,不知何故,这个"包含"的东西,发送虚假的包含页面或类似的东西.所以基本上我想知道什么是"包含"功能,我该如何保护它,它们如何滥用它以及是否有更好的解决方案来满足我的需求.
提前致谢.
我遇到了Emacs中的greps问题.
a)grep似乎不理解.[ch]用于搜索.c和.h文件.这是Emacs使用lgrep命令提供的默认选项.该示例是在.c/.h文件中搜索"global"一词.
grep -i -nH "global" *.[ch]
grep: *.[ch]: No such file or directory
Grep exited abnormally with code 2 at Mon Feb 16 19:34:36
Run Code Online (Sandbox Code Playgroud)
这种格式无效吗?
b)使用rgrep我收到以下错误:
find . "(" -path "*/CVS" -o -path "*/.svn" -o -path "*/{arch}" -o -path "*/.hg" -o -path "*/_darcs" -o -path "*/.git" -o -path "*/.bzr" ")" -prune -o -type f "(" -iname "*.[ch]" ")" -print0 | xargs -0 -e grep -i -nH "global"
FIND: Wrong parameter format
Grep finished (matches found) …Run Code Online (Sandbox Code Playgroud) 不久前,我问我如何从Windows上运行的C++程序中确定stdout是否指向控制台.我收到了一个有用的答案:GetConsoleMode().
更新:具体来说,如果stdout指向控制台,则此表达式的计算结果为true:
GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &temp)
Run Code Online (Sandbox Code Playgroud)
现在我正试图在Mac上解决同样的问题.是否有类似的功能,我可以从Mac OS X调用,以确定是否stdout指向控制台?
更新:人们建议使用函数isatty(),它接受文件描述符.在Windows的情况下,该描述符是通过调用GetStdHandle(STD_OUTPUT_HANDLE)获得的.我会isatty(fileno(stdout))按照建议查看我是否可以打电话.
据我所知,当包含参数包的模式右侧出现省略号(...)时,模式会对包中的每个参数展开一次.然而,尽管我已经能够通过扩展找到模式的孤立示例,但我无法找到模式构成的定义.从我所看到的,空格在模式的定义中没有任何作用,但是括号有.例如,在此示例中:
template<typename ... Ts>
void func(Ts)
{
do_something(validate(Ts)...);
}
Run Code Online (Sandbox Code Playgroud)
该do_something行将扩展为:
do_something(validate(var1), validate(var2), validate(var3))
Run Code Online (Sandbox Code Playgroud)
如果Ts碰巧代表三个变量.相比之下:
do_something(validate(Ts...));
Run Code Online (Sandbox Code Playgroud)
将扩大到:
do_something(validate(var1, var2, var3));
Run Code Online (Sandbox Code Playgroud)
因此,明确括号与确定模式的开始和结束位置有关.我也可以看到空白没有.但这只能让我到目前为止.我想知道什么构成一个模式,以及它将如何扩展.我尝试搜索C++标准,但发现太多"参数包"实例使其有效.有人可以给我一个"模式"的定义,或定义的链接,或两者兼而有之?
更新:为了限制我的问题的范围,我想集中讨论在函数调用中出现模式的情况.我已经相应地编辑了标题.对不起,我从一开始就没说清楚.