问题标签 [construction]

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 投票
9 回答
26328 浏览

c++ - C++ 中单例的线程安全惰性构造

有没有办法在 C++ 中实现单例对象:

  1. 以线程安全的方式懒惰地构造(两个线程可能同时是单例的第一个用户 - 它仍然应该只构造一次)。
  2. 不依赖于预先构造的静态变量(因此在构造静态变量期间单例对象本身可以安全使用)。

(我不太了解我的 C++,但是在执行任何代码之前是否初始化了整数和常量静态变量(即,甚至在执行静态构造函数之前 - 它们的值可能已经在程序中“初始化”了)图像)?如果是这样 - 也许可以利用它来实现单例互斥锁 - 这又可以用来保护真正单例的创建..)


太好了,看来我现在有几个很好的答案(很遗憾我不能将 2 或 3 标记为答案)。似乎有两种广泛的解决方案:

  1. 使用 POD 静态变量的静态初始化(与动态初始化相反),并使用内置原子指令实现我自己的互斥锁。这是我在问题中暗示的解决方案类型,我相信我已经知道了。
  2. 使用其他一些库函数,例如pthread_onceboost::call_once。这些我当然不知道 - 并且非常感谢发布的答案。
0 投票
10 回答
7324 浏览

c++ - 清空 C++ 对象

Empty我经常使用类似于以下的代码向我的 C++ 对象添加一个方法来清除内部状态。

这似乎比在构造函数中复制代码要好,但我想知道*this = Foo()在想要清除对象时是否是一种常用方法?这个等着咬我有什么问题吗?还有其他更好的方法来实现这种事情吗?

0 投票
5 回答
2314 浏览

java - 在 Java 中创建数组时是否调用了 Object 构造函数?

在 Java 中,数组是一个对象。我的问题是......创建新数组时是否调用了 Object 构造函数?我们想使用这个事实来使用一些额外的字节码来检测对象构造函数,以检查正在构造的数组的长度。那行得通吗?

0 投票
9 回答
16792 浏览

java - 使用 Java 生成程序化 HTMLDocument

有谁知道如何在 Java 中以编程方式生成 HTMLDocument 对象,而无需在外部生成字符串,然后使用 HTMLEditorKit#read 解析它?我问的两个原因:

首先,我的 HTML 生成例程需要非常快,并且我假设将字符串解析为内部模型比直接构建此模型成本更高。

其次,面向对象的方法可能会产生更简洁的代码。

我还应该提到,出于许可的原因,除了 JVM 附带的库之外,我不能使用任何库。

谢谢,汤姆

0 投票
3 回答
3182 浏览

sql - 如何指定可以从 linq 到 sql 查询返回哪些列

我试图只从 linq 到 sql 查询返回几列,但如果我这样做,它会引发异常:

不允许在查询中显式构造实体类型“InVision.Data.Employee”

这是代码:

如果我返回所有内容,那么它将引发有关循环引用的异常,因为它需要被序列化才能在 javascript 中使用,所以我真的需要限制列...感谢您可以给我解决这个问题的任何提示。

0 投票
5 回答
296 浏览

c# - 使用另一个查询的相同字段从 LINQ 构造对象

那是例子

SQL

LINQ

这种情况经常遇到,并且有一些棘手的方法可以使用相同的字段但从另一个视图构造对象并使用。

当我在 C# 端进行这样的连接时,我会得到低性能、延迟加载等问题。无论如何 LINQ 发出许多查询来获取每个详细记录,从性能的角度来看是不可接受的。

必须有明显的解决方案,我不敢相信没有人面临同样的问题。像 dc.Translate 这样的所有显而易见的解决方案几乎都是一样的,但并不完全符合我的需要。

帮助表示赞赏。

0 投票
5 回答
201 浏览

javascript - Javascript中的对象是什么时候构造的?

考虑以下 Javascript 函数 (1):

现在我不喜欢这个函数的是每次调用函数时都会创建完全相同的对象。由于对象不会改变,我宁愿只创建一次。所以我们可以进行以下调整(2):

现在,当脚本加载并存储在dataObject. 但是让我们假设它setData只是偶尔被调用——在脚本加载的大多数时候,该函数没有被使用。在这种情况下,我不喜欢这个函数的是对象总是被创建并保存在内存中,包括许多永远不会使用它的场合。我想你可以做这样的事情来达到理想的平衡(3):

这有意义吗?我认为这取决于解释器何时决定创建一个对象。是真的等到!dataObject条件通过了,还是进入函数,尝试聪明,决定提前构造?也许不同的 Javascript 引擎对此有不同的政策?

然后当然还有这些优化在实践中是否重要的​​问题。显然,这取决于对象的大小、引擎的速度、可用资源的数量等因素。但总的来说,你会说哪一个是更重要的优化:从 (1) 到 (2)还是从(2)到(3)?

0 投票
4 回答
560 浏览

windows - 为什么没有类似 C++ 的 Windows.Forms 程序(有吗?)

我认为没有像 VS Windows.Forms 这样的 C++ 程序。现在我知道“Windows.Forms”本身就是一个 C#“东西”,但我不明白为什么没有人为 C++ Windows GUI 构建类似的图形构造界面。我只是不知道/他们吗?

我是否应该尝试制作一个(无论如何对我来说这将是一个挑战,但有什么好玩的!)?有人想和我谈谈和我一起做一个吗?

0 投票
2 回答
269 浏览

c++ - C++ 引用正在构造的对象

在 C++ 中,我引用了一个想要指向其所有者的对象,但我无法在包含类的构造期间设置指针,因为它没有完成构造。所以我正在尝试做这样的事情:

有没有办法确保 B 总是用 A* 初始化,而 A 没有指向 B 的指针?

谢谢

0 投票
1 回答
105 浏览

ruby - 在代码中访问第三方 ruby​​ 库模块?这是Windows上的正确方法吗?

我需要一个小脚本来从 Windows 风格的 .ini 文件中读取数据。搜索我的 windows 机器,我在这个路径中找到了 inifile.rb:

将此路径直接添加到我的 ruby​​lib 路径似乎不自然,因为这意味着需要添加我想要的任何其他特殊单元。

所以在我的代码中我写了这个:

这行得通,但似乎也不适合包含在内。必须有更好的方法在代码中指定它吗?