小编Bre*_*ent的帖子

std :: mt19937需要预热吗?

我已经读过许多伪随机数生成器需要许多样本才能"预热".这是使用std :: random_device种子std :: mt19937的情况,还是我们可以期待它在构建后准备就绪?有问题的代码:

#include <random>
std::random_device rd;
std::mt19937 gen(rd());
Run Code Online (Sandbox Code Playgroud)

c++ random standard-library mersenne-twister c++11

46
推荐指数
2
解决办法
1万
查看次数

如何在TypeScript中将多个外部模块放入同一个命名空间?

假设我想每个.ts文件有一个类.我有两个.ts文件,看起来像这样:

export module MyClasses { export class A {} }
Run Code Online (Sandbox Code Playgroud)

export module MyClasses { export class B {} }
Run Code Online (Sandbox Code Playgroud)

我不能这样做:

import MyClasses = module('A');
import MyClasses = module('B');
Run Code Online (Sandbox Code Playgroud)

如何在单独的文件中定义类并将它们放在同一个"命名空间"中?此外,我们最终必须做以下事情:

MyClasses.MyClasses.A
Run Code Online (Sandbox Code Playgroud)

代替

MyClasses.A
Run Code Online (Sandbox Code Playgroud)

这种额外的层次结构有什么意义?这样你就可以在模块文件中有多个导出的模块?到目前为止,我已经弄清楚的最好的解决方案是删除"导出模块"(因为编译AMD时"导出类"似乎已经足够了),这会使类升级到一个层次级别.然后:

import AModule = module('A');
module MyClasses{ var A = AModule.A; }
import BModule = module('B');
module MyClasses { var B = BModule.B; }
Run Code Online (Sandbox Code Playgroud)

虽然它完美无缺,但它并不完全简洁.有没有更好的方法来做到这一点?

typescript

23
推荐指数
2
解决办法
1万
查看次数

使用Base64.encode时的Ruby字符编码

查看Ruby的Base64.encode的源代码在Base64中编码该数据之前,我无法确定字符串转换为什么字符编码(如果有的话).在Base64中编码的Utf-8字符串将与在Base64中编码的Utf-16字符串有很大不同.Ruby是否会对此操作做出任何承诺?

ruby base64 character-encoding

14
推荐指数
2
解决办法
1万
查看次数

有没有比document.execCommand更好的东西?

在实现基于Web的富文本编辑器时,我读到这document.execCommand对于对HTML文档执行操作很有用(比如选择粗体).但是,我需要一些更好的东西.具体来说,我需要确切地知道在innerHTML中添加或删除了哪些文本,以及在什么位置(作为整个文档的HTML表示的偏移量).

我考虑过使用内置的document.execCommand和DOM4的变异观察器,但execCommand似乎没有完成任务:

  • 我没有看到一种"不加粗体"选择的方法
  • 生成的html似乎因浏览器而异.(我希望<span>标签不是<b>,但一致性更重要)
  • 并且没有关于它如何处理冗余嵌套/相邻<span>标签的信息.

此外,根据我的需要,使用变异观察器似乎有点矫枉过正.

我的动机:我正在尝试定期向服务器传输文档更改,而无需重新传输整个文档.我将数据作为HTML表示的插入和删除集合发送.如果有人知道如何从CKEditor中获取此功能(所以我不必从头开始),那么我会永远爱你.

注意:执行文本差异不是一种选择,因为它在非常大的文档上表现不佳.

否则,我并不是害怕尝试写一些这样做的东西.DOM的范围对象提供的方法将处理很多繁重的工作.我也很欣赏有关这种可能性的建议.

javascript dom richtext ckeditor execcommand

12
推荐指数
2
解决办法
2743
查看次数

为什么Boost MPL具有积分常数?

既然你可以将整数值作为模板参数并对它们进行算术运算,那么boost :: mpl :: int _ <>和其他积分常数背后的动机是什么?这种动机是否仍然适用于C++ 11?

c++ boost metaprogramming boost-mpl c++11

10
推荐指数
2
解决办法
1529
查看次数

C++ 11中的UTF转换函数

我正在寻找一系列用于在C++ 11中执行UTF字符转换的函数.它应该包括与utf8,utf16和utf32中的任何一个的转换.识别字节顺序标记的功能也很有用.

c++ unicode data-conversion utf c++11

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

当函数的逻辑确实返回时,如何处理"并非所有代码路径返回值"

我想最简单的解释方法是一个人为的例子:

public static int Fail() {
    var b = true;
    if (b) {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码不会编译,并给出错误"并非所有代码路径都返回一个值",而我们人类可以清楚地看到它确实存在.我明白为什么.我的问题是应该采取什么措施来纠正这种情况.它可能是这样的:

public static int Fail() {
    var b = true;
    if (b) {
        return 0;
    }
    throw new ApplicationException("This code is unreachable... but here we are.");
}
Run Code Online (Sandbox Code Playgroud)

但这一切似乎都很愚蠢.有没有更好的办法?同样,这段代码是一个人为的例子(可以简化为return 0).我的实际代码是庞大而复杂的,但逻辑上(通过数学证明)在尝试退出之前返回一个值.

c# unreachable-code

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

JavaScript相当于C#的DynamicObject吗?

需要明确的是,继承DynamicObject的类(当然是C#)与JavaScript的动态变量不同。DynamicObject允许实现者以编程方式确定对象具有哪些成员,包括方法。

编辑:我知道JavaScript对象可以在运行时添加任何成员。那根本不是我在说什么。这是一个C#示例,展示了DynamicObject的功能:

public class SampleObject : DynamicObject
{
    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        result = binder.Name;
        return true;
    }
}

dynamic obj = new SampleObject();
Console.WriteLine(obj.SampleProperty);
//Prints "SampleProperty".
Run Code Online (Sandbox Code Playgroud)

当访问obj的成员时,它将使用TryGetMember以编程方式确定该成员是否存在及其值。简而言之,成员的存在是在请求时确定的,而不是事先添加成员。我希望这可以使问题有所澄清。如果您想知道,我正在尝试确定是否有可能在JavaScript中创建对象,当在其上使用函数调用语法时,如下所示:

myAPI.uploadSomeData(data1, data2)
Run Code Online (Sandbox Code Playgroud)

uploadSomeData调用转到“ TryGetMember”之类的函数,该函数使用名称“ uploadSomeData”执行$ .ajax调用以生成URL,并且返回值是结果。

javascript c#

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

获取给定 IETF 语言标签(或 ISO 639-ISO 3166-1 对)的 ISO 15924 脚本代码

我正在将 ICU 集成到一些内部软件中。我希望能够获取诸如“en_US”之类的字符串并为其获取脚本名称“Latin”。(虽然最终我实际上想要一个 ICU ScriptCode。)

我尝试使用 ICU 的 Locale 类,但是这段代码:

Locale *ul = new Locale("en_US",);
LOG(ul->getScript());
Run Code Online (Sandbox Code Playgroud)

记录一个空字符串,尽管文档表明这用例。我什至使用 Locale 类的静态方法尝试过它Locale::getEnglish,但仍然得到一个空字符串。我是这个国际化的东西和 ICU 的新手。有什么我想念的吗?看起来这应该是一个非常简单的任务。

编辑:在阅读了 Locale 的源代码后,似乎唯一可以提供脚本代码的时间是将其传递给构造函数时(即“en_Latn_US”)。为不完整的文档干杯。我的总体问题仍然存在。

iso internationalization icu

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

如何深入研究shared_ptr [Netbeans,clang ++,gdb]

我正在使用

  • Netbeans C++ 8.0.2
  • clang ++(Ubuntu clang version 3.6.0-2ubuntu1(tags/RELEASE_360/final)(基于LLVM 3.6.0))
  • gdb(GNU gdb(Ubuntu 7.9-1ubuntu1)7.9)

在我的"C++简单测试"中,每当我检查一个shared_ptr变量时,我看到的所有值都是:

std :: shared_ptr(count 1,weak 0)0x64d3a0

或类似的.没有办法深入到它实际指向的值.即使变量窗口中的树视图显示其中一个扩展器图标,当我单击它时它也会消失.当我尝试解除引用它或get()在"表达式"窗口中调用它的函数时,我收到一条错误消息:

找不到运营商*.

无法评估功能 - 可能内联

分别.

如果我在实际程序中创建对该值的引用,它不仅允许我深入查看引用,而且也可以向下钻取shared_ptr(这对我来说似乎很可疑).我尝试过-g3,-ggdb但没有任何区别.

是否有标准库的调试版本(libcxx是默认值?),还是某个可能改善情况的设置?或者也许是一种在变量窗口中列出私有成员/原始视图的方法,所以我可以自己取消引用底层指针?

c++ debugging gdb clang netbeans-8

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