问题标签 [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.
delphi - 有没有办法用快捷方式覆盖以前注册的操作?
我有一个有很多动作的单元,有些动作有快捷方式,有些甚至有相同的快捷方式。这是因为它们在应用程序中属于不同的模块,并且它们不在同一时间上下文中。
现在我有了一个可以随时随地启动的全局非模态对话框(称为 objectinspector)。它具有与模块中其他位置相同的快捷方式的一些操作。
因此,我想在 objectinspector 处于活动状态时临时覆盖那些共享相同快捷方式的操作,并在停用时释放它。
我在 objectinspectors OnActivate 事件中有这段代码:
- ClientActions 是包含操作的单元。
- RegisterAction 是一种将事件与动作连接起来的方法。
- actObjectInspectorNewWindow 是实际操作。
- ShowNewObject 是执行操作时应调用的事件。
因此,对于每个模块和无模式对话框,上述方法都会注册一些操作。当 2 个操作共享相同的快捷方式时,问题就出现了。似乎首先注册的操作获胜并在用户按下快捷方式时执行。我更喜欢执行使用该快捷方式注册操作的最后一个操作。
如何才能做到这一点 ?
问候
mod-rewrite - 临时将所有流量(新站点)路由到其他域?最佳实践?
对于客户,我需要将他们的流量临时路由到我自己的子域。他们的主机(共享主机)需要重新配置才能使站点正常工作,但客户希望他们的站点尽快上线(还有什么新的 ;-)
考虑到以下几点:
- 这是一个新站点/新域,因此没有遗留的 SEO 流量。
- 最好我希望客户域留在访问者浏览器的地址栏中
- 在我的子域上,所有流量都将按照前端控制器模式使用 mod_rewrite 进行路由(即http://example.com/some-seo-url/将由 index.php 处理)
- 编辑我自己的主机也是共享主机,所以我无权访问虚拟主机定义。
在一段时间内将所有流量路由到我自己的子域的最佳做法是什么?
请就如何最好地实现这一点提出建议。
c++ - 在 C++ 中按值传递临时结构的简单方法?
假设我想将一个临时对象传递给一个函数。有没有办法在 1 行代码与 2 行代码中使用结构来做到这一点?
通过一堂课,我可以做到:
给定:
现在,我如何使用结构来做到这一点?我得到的最接近的是:
给定:
该对象更简单,但我想知道是否有一种方法可以根据函数调用进行结构成员初始化,而无需为结构提供构造函数。(我不想要构造函数。我使用结构的全部原因是在这种孤立的情况下避免样板的 get/set 类约定。)
php - 调用临时对象方法的 PHP 语法
有没有办法在临时声明的对象上调用方法,而不会被迫将第一个对象分配给变量?
见下文:
c++ - 在 C++ 中意外创建临时对象的方法?
多年前,我认为 C 与 C++ 相比绝对是纯粹的,因为编译器无法生成任何您无法预测的代码。我现在相信反例包括volatile
关键字和内存屏障(在多处理器编程或内存映射硬件设备的设备驱动程序中,纯汇编语言比 C 编译器的优化更纯粹)。
目前我正在尝试列举 C++ 编译器可以做的不可预测的事情。我对 C++ 的主要抱怨是编译器会隐式实例化临时对象,但我相信这些情况都是可以预料的。我想到的案例是:
- 当一个类为自身以外的类型定义复制构造函数时,不使用
explicit
关键字 - 当一个类定义一个重载的转换运算符时:
operator ()
- 当函数通过值而不是通过引用接受对象时
- 当函数按值而不是按引用返回对象时
还有其他人吗?
c++ - 什么是*临时*对向量进行排序的好方法?
我有一个 std::vector ,我需要为某些操作按选定的算法排序,但在其余时间保持其原始状态(例如,输入时排序的项目)。
显然,我可以使用 std::copy 创建一个临时向量并对其进行排序,但我想知道是否有更好的方法,可能是通过为输入的项目加上时间戳。
干杯
c++ - 关于在 C++ 中销毁临时对象的确切时间的问题
以下代码是否安全(它在调试中工作):
所以 - 它安全吗?我应该忘记它并使用带有显式 tmp 的代码吗?
但无论如何-如果允许优化器在从此调用返回之前杀死临时对象,我仍然感兴趣:
编辑:谢谢大家!不幸的是,我无法更改函数“takesPointer”(它是库的一部分),我只能将其包装在调用 takePointer 的函数“takesReference”中 - 这会消除副本,还是允许编译器创建一个副本(“类型”是一个 int-3x3-Matrix,所以它不会那么糟糕,但仍然......)?
关于销毁时间:它会在“takesPointer”返回之后被销毁,还是在它被调用之后被销毁?
c++ - 在抛出的异常中销毁临时字符串
考虑以下代码:
传递给 runtime_error 的字符串是 string 的临时返回的operator+
。假设这个异常被处理如下:
字符串的临时返回什么时候operator+
销毁?语言规范对此有什么要说的吗?另外,假设 runtime_error 接受了一个const char*
参数并像这样抛出:
现在operator+返回的临时字符串什么时候被销毁了?它会在 catch 块尝试打印它之前被销毁吗,这就是为什么 runtime_error 接受 std::string 而不是 const char* 的原因吗?
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)我现在依赖未定义的行为吗?演员阵容看起来很不寻常。
我知道最好的选择是这样的:
...但我对在一行中执行此操作的行为感兴趣。假设有人想做一个(可疑的)宏:
这个功能会如预期的那样吗?
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) 的规则似乎不应该适用——毕竟,从临时对象中移出是完全安全的。
这是:
- 我误读/误解了标准,其中实现的行为是预期的行为,并且有一些很好的理由说明我的示例应该按照它的方式运行?
- 编译器供应商都犯了一个错误?还是基于常见实施策略的错误?或者例如 GCC 中的一个错误(这个左值/右值引用绑定规则是第一次实现的),被其他供应商复制了?
- 标准中的缺陷,或意外后果,或应该澄清的东西?
编辑:我有一个相关的后续问题:C++0x rvalue references - lvalues-rvalue binding