#include<iostream>
using namespace std;
template<typename ...Args>
void output_argus(Args&&... args)
{
((cout << args << '\n'), ...); // #1
(... , (cout << args << '\n')); // #2
}
int main()
{
output_argus(1, "test", 5.6f);
}
Run Code Online (Sandbox Code Playgroud)
基于c ++ operator doc,','是一个从左到右的运算符.意思a, b, c, d是意义(((a, b), c),d)不是(a, (b, (c, d))).如果a,b,c,d是陈述,这一点很重要.
但是,基于fold表达式doc,','应该使用一元左折.
我的问题为什么我的代码中的两个语句都有效?不应该只#2工作吗?以及如何理解...和args.和嵌套的折叠表达式?
我pdb之前一直用Python调试。最近,我开始使用 Visual Studio Code。
它在 Visual Studio Code 调试器中看起来,如果我设置 a breakpoint(),Visual Studio Code 将在左侧窗口的停止位置显示变量的值,我必须通过 GUI 栏来控制它。
因此,在"integratedTerminal"or中"externalTerminal",我无法通过此处显示的命令行进行控制,并且没有pdb提示弹出窗口。我觉得这让我感到惊讶,因为它劫持了纯 Python 的东西。
那么有没有办法同时拥有变量监视窗口和 pdb 提示控制呢?特别是在"integratedTerminal"或"externalTerminal".
以下是文件夹.vscode下的文件,
{
"python.pythonPath": "/Users/<USERNAME>/miniconda3/envs/<CONDA_ENV>/bin/python"
}
Run Code Online (Sandbox Code Playgroud)
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Module",
"type": "python",
"python": "/Users/<USERNAME>/miniconda3/envs/<CONDA_ENV>/bin/python",
"request": "launch",
"program": "/Users/<USERNAME>/miniconda3/envs/<CONDA_ENV>/bin/<COMMAND>",
"console": "integratedTerminal",
"args": [
"hello-world"
],
"cwd": "${workspaceRoot}",
}
]
}
Run Code Online (Sandbox Code Playgroud)