小编jot*_*tik的帖子

检测编码

我从网上得到一些字符串数据,我怀疑它并不总是它所说的.我不知道问题出在哪里,我只是不在乎了.从这个项目的第一天起,我一直在与Ruby字符串编码进行斗争.我真的想要某种方式来说:"这是一个字符串.它是什么?"然后使用这些数据将其转换为UTF-8,这样它就不会gsub()在我的应用程序深处爆炸2,000行.我已经检查过了rchardet,但即使它现在可以用于1.9,它只是在任何具有多个字节的输入时爆炸......这没有用.

ruby ruby-1.9

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

如何处理或避免来自C++ 11 <regex>匹配函数的异常(§28.11)?

从C++ 11个的起始<regex>报头定义的功能std::regex_match,std::regex_search并且std::regex_replace§28.11.我想这些函数不存在是有正当理由的noexcept,但我找不到任何关于这些函数可能抛出的原因或原因.

  1. 这些函数可以抛出哪些类型的异常?
  2. 什么运行时条件会导致抛出这些异常?
    • 标准是否确保对于某些参数集,这些函数永远不会抛出,例如它是否确保regex_match(anyString, regex("."))从不抛出?

PS:由于其中一些异常可能继承std::runtime_error,他们可能会std::bad_alloc在构建过程中抛出.

c++ regex exception language-lawyer c++11

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

什么noexcept完全包含在构造函数中?

根据C++标准,类构造函数的noexcept noexcept-specification究竟适用于什么?

  1. 函数体
    1. 初始化可选的ctor-initializer中的成员?
      1. 在可选的mem-initializer s中初始化基类?
      2. 在可选的mem-initializer中初始化类成员?
    2. 复合语句
    3. 功能试块
  2. 初始化未在ctor-initializer中初始化的对象基类?
  3. 初始化未在ctor-initializer中初始化的对象类成员?
  4. 额外的东西?

换句话说,noexcept noexcept规范包含了上述哪一项(例如,std::terminate()在抛出异常时触发noexcept(true))?

请提供该标准的参考.关于使用noexcept构造函数的任何警告的提示也是受欢迎的.谢谢!

c++ constructor language-lawyer noexcept c++11

10
推荐指数
1
解决办法
624
查看次数

展开std :: tuple以用作类的初始化程序

我想使用a的所有元素std::tuple作为类的初始化器.有没有比std::get<i-th element>(std::tuple)为元组的每个元素做更简单的方法?

最低工作示例std::get:

#include <string>
#include <tuple>
#include <cassert>

struct A
{
    std::string string1;
    int intVal;
    std::string string2;
};

int main()
{
  std::tuple< std::string, int, std::string > myTuple("S1", 42, "S2");

  A myA{ std::get<0>(myTuple), std::get<1>(myTuple), std::get<2>(myTuple) };

  assert( myA.string1 == "S1" );
  assert( myA.intVal  == 42   );
  assert( myA.string2 == "S2" );
}
Run Code Online (Sandbox Code Playgroud)

有关实例,请参见http://coliru.stacked-crooked.com/a/4a5d45dbf1461407

c++ tuples c++11

10
推荐指数
1
解决办法
282
查看次数

外部符号是如何解决的?

我有两个文件37064544_p1.cpp,37064544_p2.cpp内容相同,如下所示:

int add(int x,int y)
{
return x+y;
}
Run Code Online (Sandbox Code Playgroud)

我用它们编译了它们

g++ -c 37064544_p2.cpp -o 37064544_p2.o
g++ -c 37064544_p2.cpp -o 37064544_p2.o
Run Code Online (Sandbox Code Playgroud)

并使用将它们添加到存档中

ar -rsc lib37064544pf.a 37064544_p1.o 37064544_p2.o
Run Code Online (Sandbox Code Playgroud)

$ nm -s lib37064544pf.a 
Run Code Online (Sandbox Code Playgroud)

给我 :

Archive index:
_Z3addii in 37064544_p1.o
_Z3addii in 37064544_p2.o

37064544_p1.o:
0000000000000000 T _Z3addii

37064544_p2.o:
0000000000000000 T _Z3addii
Run Code Online (Sandbox Code Playgroud)

$ ar -t lib37064544pf.a 
Run Code Online (Sandbox Code Playgroud)

给我

37064544_p1.o
37064544_p2.o
Run Code Online (Sandbox Code Playgroud)

我有一个驱动程序,它调用_Z3addii编译的函数

g++ -static 37064544driver.cpp -o 37064544driver.elf -L. -l37064544pf
Run Code Online (Sandbox Code Playgroud)

结果是

Sum : 11
Run Code Online (Sandbox Code Playgroud)

问题

  1. 符号是如何_Z3addii解决的?

    • 是根据档案索引吗? …

c++ g++ unix-ar static-linking nm

10
推荐指数
1
解决办法
332
查看次数

折叠表达式是C++ 14还是C++ 1z功能?

https://isocpp.org/std/the-standard表示N4296的工作草案

包含C++ 14标准以及次要的编辑更改.

我注意到N4296§5.1.3包含"折叠表达式"的规范.我认为这是一个没有达到官方C++ 14标准的功能.

折叠表达式是C++ 14的一部分还是在N4296中添加的那些次要编辑修改之一?

c++ language-lawyer c++14 fold-expression c++17

9
推荐指数
1
解决办法
334
查看次数

为什么Spark Row对象与等效结构相比如此之大?

我一直在玩这个java-sizeof库(https://github.com/phatak-dev/java-sizeof)并用它来测量Apache Spark中的数据集大小.事实证明,这个Row物体非常大.就像非常大 - 为什么会这样?

采取一个相当简单的架构:

root
 |-- account: string (nullable = true)
 |-- date: long (nullable = true)
 |-- dialed: string (nullable = true)
 |-- duration: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)

示例数据如下所示:

+-------+-------------+----------+--------+
|account|         date|    dialed|duration|
+-------+-------------+----------+--------+
|   5497|1434620384003|9075112643|   790.0|
+-------+-------------+----------+--------+
Run Code Online (Sandbox Code Playgroud)

所以现在我们做:

val row = df.take(1)(0)
// row: org.apache.spark.sql.Row = [5497,1434620384003,9075112643,790.0]
Run Code Online (Sandbox Code Playgroud)

所以现在我用 SizeEstimator

SizeEstimator.estimate(row)
// res19: Long = 85050896
Run Code Online (Sandbox Code Playgroud)

81兆字节!对于单排!认为这是某种错误,我这样做:

SizeEstimator.estimate(df.take(100))
// res20: Long = 85072696
Run Code Online (Sandbox Code Playgroud)

有趣的是,尽管拥有100倍的数据量,但它并没有大得多 - 只有大约20k.高于100,似乎是线性的.对于1,000行,它看起来像这样:

SizeEstimator.estimate(df.take(1000))
// res21: Long = 850711696 …
Run Code Online (Sandbox Code Playgroud)

apache-spark

9
推荐指数
1
解决办法
272
查看次数

如何在Java中等待完成多个任务?

在Java应用程序中实现并发的正确方法是什么?我知道Threads和东西,当然,我已经为Java编程了10年了,但是并没有太多的并发经验.

例如,我必须异步加载一些资源,并且只有在加载完所有资源之后,我才能继续并做更多的工作.不用说,他们没有完成任务的顺序.我该怎么做呢?

在JavaScript中,我喜欢使用jQuery.deferred基础设施

$.when(deferred1,deferred2,deferred3...)
 .done(
   function(){//here everything is done
    ...
   });
Run Code Online (Sandbox Code Playgroud)

但是我在Java中做什么?

java concurrency multithreading

9
推荐指数
3
解决办法
5106
查看次数

如何配置nginx来提供HTML文件以供查看而不是下载?

我想将nginx配置为服务器HTML文件以供查看而不是下载.

server {
    listen       5000;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    #location / {
    #    root   html;
    #    index  index.html index.htm;
    #}

    location = / {
        root /home/vagrant/own/base/assets;
        index index.html;
    }

    location = /login {
    #    root /home/vagrant/own/base/assets;
          alias /home/vagrant/own/base/assets/login.html;
    }

    location /index.html {
        root /home/vagrant/own/base/assets;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的conf文件,当我浏览时/login,我的浏览器尝试提供下载文件而不是查看它.谢谢你的帮助.

nginx

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

合理的snprintf替代strftime?

是否有任何标准(C,C++,POSIX,Linux ...)strftime可供选择

  1. 计算给定格式和时间的字符串缓冲区所需的大小,
  2. strftime如果缓冲区大小小于完全输出所需的,则截断输出(而不是像数据中那样保留数组内容).

例如,snprintf接受strftime格式字符串的日期/时间格式的类似语义可以完美地完成.

std::put_timeC++ 11和更高版本中的函数不是一个选项,因为它们可能会尝试动态分配额外的内存并可能抛出异常.

c c++ strftime date-formatting

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