小编Ari*_*ler的帖子

在C++中,为什么有些编译器拒绝将只包含double的对象放入寄存器?

在Scott Meyer的Effective C++第20节中,他指出:

一些编译器拒绝将仅包含double的对象放入寄存器中

当按值传递内置类型时,编译器会很乐意将数据放入寄存器并快速发送ints/ doubles/ floats/等.沿.但是,并非所有编译器都会以相同的宽限度处理小对象.我可以很容易地理解为什么编译器会以不同的方式处理对象 - 按值传递Object比在vtable和所有构造函数之间复制数据成员要多得多.

但仍然.对于现代编译器来说,这似乎是一个容易解决的问题:"这个类很小,也许我可以区别对待".Meyer的声明似乎暗示编译器将对仅由int(或charshort)组成的对象进行优化.

有人可以进一步了解为什么有时这种优化不会发生?

c++ compiler-specific

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

在bash中使用`!#`有什么用?

我不是在谈论UNIX shebang意图给出解释器的路径.事实上,shebang已经很难成功地谷歌这个问题了...

我在谈论bash扩张:

  • !! 检索前一个命令(类似于向上箭头,但更有用)
  • !$ 检索最后一个命令的最后一个单词
  • !# 似乎检索当前行

实际上有用的是!#什么?

  • echo !# 扩展到 echo echo
  • echo echo !# 扩展到 echo echo echo echo
  • ls !#扩展到ls ls.

所有这些看起来都是毫无意义的.我所知道的关于!#命令的是我从使用它中学到的东西 - 我不确定我是否知道它的真正功能.

bash shell

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

有什么区别:".[script]"或"source [script]","bash [script]或$ SHELL [script]",以及"./ [script]"或"[script]"?

我知道source.做同样的事情,我会惊讶地发现标题中的其他命令对不是那么相同的事情(因为我正在运行bash作为我的shell,$SHELL [script]并且bash [script]是等价的,对吗? ).

那么执行脚本的三种方法之间的区别是什么?我问,因为我刚刚得知采购脚本执行脚本完全相同.在某种程度上,我从运行"实验"和阅读手册页中找不到明显的方法.

通过在我编写的非常简单的脚本上盲目地调用这些函数,我找不到其他微妙的差异?在阅读了上述相关答案之后,我可以强烈地猜测,我的问题的答案将是一个非常简单的解释,但在某种程度上,我几乎从未完全发现自己.

这是我做过的"实验":

$. myScript.sh
  "This is the output to my script. I'd like to think it's original."

$source myScript.sh
  "This is the output to my script. I'd like to think it's original."

$bash myScript.sh
  "This is the output to my script. I'd like to think it's original."

$$SHELL myScript.sh
  "This is the output to my script. I'd like to think it's original." …
Run Code Online (Sandbox Code Playgroud)

linux bash shell

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

如何调试打印 tmux 设置的值?

例如,如果我想知道textwidthvim 中的值,我可以通过附加?. 因此,我只需输入:set textwidth?.

你怎样才能在 中做同样的事情tmux

debugging tmux

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

什么是C中的地址清理?

消毒可以保持代码清洁,消除"脏"注射.在HTML和JavaScript中,这是通过删除不安全标记或转义用户输入来实现的.

"消毒"对C意味着什么?

c sanitization

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

当模板参数要求 std::less<T> 时,编译器如何在 std::set 中使用 T::operator<?

创建 时std::set,模板参数之一是class Compare,默认为std::less<T>

现在,即使您没有给出 的专业化std::less<T>,定义T::operator<也足以让 C++“弄清楚”。但是 C++ 并没有解决任何问题,编译器可以。

编译器正在经历一系列我确信都是简单的步骤。那些步骤是什么?

c++

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

标签 统计

bash ×2

c++ ×2

shell ×2

c ×1

compiler-specific ×1

debugging ×1

linux ×1

sanitization ×1

tmux ×1