小编Ke *_*ang的帖子

使用逗号运算符和可变参数模板参数包折叠表达式

#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.和嵌套的折叠表达式?

c++ fold operator-keyword variadic-templates c++17

11
推荐指数
2
解决办法
699
查看次数

如何在 Visual Studio Code IDE 的调试器中使用 pdb(Python 调试器)?

pdb之前一直用Python调试。最近,我开始使用 Visual Studio Code。

它在 Visual Studio Code 调试器中看起来,如果我设置 a breakpoint(),Visual Studio Code 将在左侧窗口的停止位置显示变量的值,我必须通过 GUI 栏来控制它。

因此,在"integratedTerminal"or中"externalTerminal",我无法通过此处显示的命令行进行控制,并且没有pdb提示弹出窗口。我觉得这让我感到惊讶,因为它劫持了纯 Python 的东西。

那么有没有办法同时拥有变量监视窗口和 pdb 提示控制呢?特别是在"integratedTerminal""externalTerminal".

以下是文件夹.vscode下的文件,

文件设置.json

{
    "python.pythonPath": "/Users/<USERNAME>/miniconda3/envs/<CONDA_ENV>/bin/python"
}
Run Code Online (Sandbox Code Playgroud)

文件启动.json

{
    "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)

python pdb visual-studio-code vscode-debugger

10
推荐指数
1
解决办法
1万
查看次数