小编Sta*_*zek的帖子

为什么我得到错误"'cout'在命名空间'std'中没有命名类型"当我使用"使用cout = std :: cout;"?

我正在尝试使用更短的语法并避免std::在任何地方使用,所以我开始使用新的别名语法.在某些例子中,我看到人们以这种方式使用它:

using json = nlohmann::json;
Run Code Online (Sandbox Code Playgroud)

并尝试使用std::,但代码如下:

#include <iostream>

using cout = std::cout;

int main()
{
    cout << "Sometext";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我得到错误'cout' in namespace 'std' does not name a type.我知道我可以使用

using std::cout;
Run Code Online (Sandbox Code Playgroud)

但为什么using cout = std::cout;不起作用?

编辑:

所有投票结束这个问题的人:我发布了它,因为我无法找到解决方案,通过写错误信息.是的,提到的问题是解决我的问题的问题描述了会发生什么,但是当有人遇到这种错误时,他将无法轻易找到解决方案.我只是没有意识到,那cout是一个对象.我已经读过这样的一些问题,但仍然不知道会发生什么.

c++ using c++11 type-alias

3
推荐指数
1
解决办法
371
查看次数

如何从文件中读取目标名称,向它们附加一些字符串,并从中创建规则?

我想要一个文件,当我可以列出名称(一行中的一个)时,这样当调用 make 时,就会根据这个名称动态生成规则,并附加一些字符串。

例子:

文件内容:

target1
target2
target3
Run Code Online (Sandbox Code Playgroud)

要连接的字符串:my_task_

由此我想有 3 条规则:

my_task_target1:
    <some things to do>

my_task_target2:
    <some things to do>

my_task_target3:
    <some things to do>
Run Code Online (Sandbox Code Playgroud)

我知道,当我拥有包含所有这些目标名称的数组时,我可以在这个答案中这样做,但我需要从文件中读取数据。

我希望它是这样的,因为我将有很多目标,并且每个目标都有不同的任务列表。每个任务都有自己的文件,其中包含目标列表。最后,我还将创建名称在目标之后的规则,但没有前缀,并且此规则将包含分配给某个目标的所有任务,以便我可以调用单独的任务,以及目标所需的所有任务,只需一个 make命令。

我怎样才能做到这一点?或者也许有更好的方法来做我想做的事?

bash shell makefile gnu-make

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

标签 统计

bash ×1

c++ ×1

c++11 ×1

gnu-make ×1

makefile ×1

shell ×1

type-alias ×1

using ×1