问题标签 [temporary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
546 浏览

delphi - 有没有办法用快捷方式覆盖以前注册的操作?

我有一个有很多动作的单元,有些动作有快捷方式,有些甚至有相同的快捷方式。这是因为它们在应用程序中属于不同的模块,并且它们不在同一时间上下文中。

现在我有了一个可以随时随地启动的全局非模态对话框(称为 objectinspector)。它具有与模块中其他位置相同的快捷方式的一些操作。

因此,我想在 objectinspector 处于活动状态时临时覆盖那些共享相同快捷方式的操作,并在停用时释放它。

我在 objectinspectors OnActivate 事件中有这段代码:

  • ClientActions 是包含操作的单元。
  • RegisterAction 是一种将事件与动作连接起来的方法。
  • actObjectInspectorNewWindow 是实际操作。
  • ShowNewObject 是执行操作时应调用的事件。

因此,对于每个模块和无模式对话框,上述方法都会注册一些操作。当 2 个操作共享相同的快捷方式时,问题就出现了。似乎首先注册的操作获胜并在用户按下快捷方式时执行。我更喜欢执行使用该快捷方式注册操作的最后一个操作。

如何才能做到这一点 ?

问候

0 投票
2 回答
208 浏览

mod-rewrite - 临时将所有流量(新站点)路由到其他域?最佳实践?

对于客户,我需要将他们的流量临时路由到我自己的子域。他们的主机(共享主机)需要重新配置才能使站点正常工作,但客户希望他们的站点尽快上线(还有什么新的 ;-)

考虑到以下几点:

  • 这是一个新站点/新域,因此没有遗留的 SEO 流量。
  • 最好我希望客户域留在访问者浏览器的地址栏中
  • 在我的子域上,所有流量都将按照前端控制器模式使用 mod_rewrite 进行路由(即http://example.com/some-seo-url/将由 index.php 处理)
  • 编辑我自己的主机也是共享主机,所以我无权访问虚拟主机定义。

在一段时间内将所有流量路由到我自己的子域的最佳做法是什么?

请就如何最好地实现这一点提出建议。

0 投票
5 回答
12753 浏览

c++ - 在 C++ 中按值传递临时结构的简单方法?

假设我想将一个临时对象传递给一个函数。有没有办法在 1 行代码与 2 行代码中使用结构来做到这一点?


通过一堂课,我可以做到:

给定:


现在,我如何使用结构来做到这一点?我得到的最接近的是:

给定:

该对象更简单,但我想知道是否有一种方法可以根据函数调用进行结构成员初始化,而无需为结构提供构造函数。(我不想要构造函数。我使用结构的全部原因是在这种孤立的情况下避免样板的 get/set 类约定。)

0 投票
9 回答
1937 浏览

php - 调用临时对象方法的 PHP 语法

有没有办法在临时声明的对象上调用方法,而不会被迫将第一个对象分配给变量?

见下文:

0 投票
3 回答
758 浏览

c++ - 在 C++ 中意外创建临时对象的方法?

多年前,我认为 C 与 C++ 相比绝对是纯粹的,因为编译器无法生成任何您无法预测的代码。我现在相信反例包括volatile关键字和内存屏障(在多处理器编程或内存映射硬件设备的设备驱动程序中,纯汇编语言比 C 编译器的优化更纯粹)。

目前我正在尝试列举 C++ 编译器可以做的不可预测的事情。我对 C++ 的主要抱怨是编译器会隐式实例化临时对象,但我相信这些情况都是可以预料的。我想到的案例是:

  • 当一个类为自身以外的类型定义复制构造函数时,不使用explicit关键字
  • 当一个类定义一个重载的转换运算符时: operator ()
  • 当函数通过值而不是通过引用接受对象时
  • 当函数按值而不是按引用返回对象时

还有其他人吗?

0 投票
6 回答
4439 浏览

c++ - 什么是*临时*对向量进行排序的好方法?

我有一个 std::vector ,我需要为某些操作按选定的算法排序,但在其余时间保持其原始状态(例如,输入时排序的项目)。

显然,我可以使用 std::copy 创建一个临时向量并对其进行排序,但我想知道是否有更好的方法,可能是通过为输入的项目加上时间戳。

干杯

0 投票
5 回答
293 浏览

c++ - 关于在 C++ 中销毁临时对象的确切时间的问题

以下代码是否安全(它在调试中工作):

所以 - 它安全吗?我应该忘记它并使用带有显式 tmp 的代码吗?

但无论如何-如果允许优化器在从此调用返回之前杀死临时对象,我仍然感兴趣:

编辑:谢谢大家!不幸的是,我无法更改函数“takesPointer”(它是库的一部分),我只能将其包装在调用 takePointer 的函数“takesReference”中 - 这会消除副本,还是允许编译器创建一个副本(“类型”是一个 int-3x3-Matrix,所以它不会那么糟糕,但仍然......)?

关于销毁时间:它会在“takesPointer”返回之后被销毁,还是在它被调用之后被销毁?

0 投票
3 回答
645 浏览

c++ - 在抛出的异常中销毁临时字符串

考虑以下代码:

传递给 runtime_error 的字符串是 string 的临时返回的operator+。假设这个异常被处理如下:

字符串的临时返回什么时候operator+销毁?语言规范对此有什么要说的吗?另外,假设 runtime_error 接受了一个const char*参数并像这样抛出:

现在operator+返回的临时字符串什么时候被销毁了?它会在 catch 块尝试打印它之前被销毁吗,这就是为什么 runtime_error 接受 std::string 而不是 const char* 的原因吗?

0 投票
6 回答
10826 浏览

c++ - 在单个语句中将临时字符串流转换为 c_str()

考虑以下函数:

假设我想使用 stringstream 生成一个字符串并将其传递给这个函数。如果我想在一个声明中做到这一点,我可以尝试:

这给出了一个错误:“str()”不是“basic_ostream”的成员。好的,所以 operator<< 正在返回 ostream 而不是 ostringstream - 将其转换回 ostringstream 怎么样?

1)这个演员表安全吗?

现在有了这个,对于 operator<<("Value: ") 调用,它实际上是在调用 ostream 的 operator<<(void*) 并打印一个十六进制地址。这是错误的,我想要文本。

2) 为什么临时 std::ostringstream() 上的 operator<< 调用 ostream 运算符?当然临时有一种'ostringstream'而不是'ostream'?

我也可以强制执行正确的操作员呼叫!

这似乎有效并将“值:5”传递给 f()。

3)我现在依赖未定义的行为吗?演员阵容看起来很不寻常。


我知道最好的选择是这样的:

...但我对在一行中执行此操作的行为感兴趣。假设有人想做一个(可疑的)宏:

这个功能会如预期的那样吗?

0 投票
6 回答
3067 浏览

c++ - C++0x 右值引用和临时对象

(我在 comp.std.c++ 上问了这个问题的一个变体,但没有得到答案。)

为什么f(arg)此代码中的调用调用 const ref 重载f

我的直觉说f(string &&)应该选择重载,因为arg无论如何都需要将其转换为临时值,并且临时值比右值引用更好地匹配右值引用。

这不是在GCC 和MSVC 中发生的(编辑:感谢 Sumant:它不会在 GCC 4.3-4.5 中发生)。至少在G++ 和MSVC 中,任何左值都不会绑定到右值引用参数,即使创建了中间临时值也是如此。实际上,如果不存在 const ref 重载,编译器会诊断出错误。但是,如您所料,编写f(arg + 0) orf(std::string(arg)) 确实选择了右值引用重载。

从我对 C++0x 标准的阅读来看,在考虑是否可行时,似乎应该考虑将 const char * 隐式转换为字符串f(string &&),就像传递 const lvalue ref 参数时一样。第 13.3 节(重载解决方案)在太多地方没有区分右值引用和 const 引用。此外,如果存在中间临时对象,阻止左值绑定到右值引用 (13.3.3.1.4/3) 的规则似乎不应该适用——毕竟,从临时对象中移出是完全安全的。

这是:

  1. 我误读/误解了标准,其中实现的行为是预期的行为,并且有一些很好的理由说明我的示例应该按照它的方式运行?
  2. 编译器供应商都犯了一个错误?还是基于常见实施策略的错误?或者例如 GCC 中的一个错误(这个左值/右值引用绑定规则是第一次实现的),被其他供应商复制了?
  3. 标准中的缺陷,或意外后果,或应该澄清的东西?

编辑:我有一个相关的后续问题:C++0x rvalue references - lvalues-rvalue binding