小编pro*_*ake的帖子

POSIX shell在命令替换中注释

我正在编写一个shell,并且从bash,dash和busybox的灰烬中得到意外的解析:

echo "`echo a #`"
Run Code Online (Sandbox Code Playgroud)

a然而,打印

echo "$(echo a #)"
Run Code Online (Sandbox Code Playgroud)

给出了关于错过结账的错误).

如何根据POSIX解析命令替换中的注释?所以,对于命令:

echo "`echo a #`"
Run Code Online (Sandbox Code Playgroud)

echo "$(echo a #)"
Run Code Online (Sandbox Code Playgroud)

shell会将注释解析为延伸到命令替换的末尾,还是行的末尾?另外,如果命令替换不是双引号,shell会不同地解析它?最后,还有其他任何构造(在POSIX或bash中),注释可以在这样的引号内开始吗?

bash posix sh language-lawyer busybox

7
推荐指数
1
解决办法
231
查看次数

有没有办法在没有重新实现的情况下从子类标记父级的虚函数final

如果我有代码:

struct Parent
{
    virtual void fn();
};

struct Child : public Parent
{
    virtual void fn() override final
    {
        Parent::fn();
    }
};
Run Code Online (Sandbox Code Playgroud)

有没有办法让Parent::fnfinal通过,只有当访问Child而无需重新实现fn,从而使其他一些class可以覆盖fn从派生的时候Parent而不是从派生时Child

喜欢:

struct Child : public Parent
{
    virtual void fn() override final = Parent::fn;
};
Run Code Online (Sandbox Code Playgroud)

还是其他一些语法?

c++ c++11

4
推荐指数
1
解决办法
438
查看次数

标签 统计

bash ×1

busybox ×1

c++ ×1

c++11 ×1

language-lawyer ×1

posix ×1

sh ×1