小编Dov*_*Dov的帖子

emacs replace-regexp的语法

我正试图找到每个日期并在其周围加上引号.我认为这应该是:

M-x replace-regexp 201\d-\d\d-\d\d <ret> '\&'

我也试过[0-9]而不是\d.

它不起作用.但是使用isearch-forward-regexp我可以输入[0-9][0-9]并观看目标突出显示.替换时我做错了什么?

regex emacs

5
推荐指数
2
解决办法
1295
查看次数

g ++中的模板函数匹配

我有一个奇怪的问题,我想知道为什么g ++ 4.1.2的行为方式.

剥夺其基本要素:

#include <iostream>

template<typename T>
inline void f(T x) { std::cout << x*x; }

namespace foo {
  class A {
  public:
    void f() const { f(2); }
  };
}
Run Code Online (Sandbox Code Playgroud)

调用f(2)失败,因为编译器无法匹配模板函数f.我可以使用它,::f(2)但我想知道为什么这是必要的,因为它是完全明确的,并且就我的(公认的过时)匹配规则的知识而言,这应该工作.

c++ templates g++ matching

4
推荐指数
2
解决办法
417
查看次数

cvs结帐时间序列

我们有一个cvs存档,我可以得到我想要的任何文件的任何版本.但是,是否有任何方法可以获取特定日期和时间的代码?我没有看到任何要求的选项.我希望能够日复一日地浏览cvs存档并自动执行指标,也许可以随时查看代码发生的变化.

cvs

4
推荐指数
1
解决办法
4558
查看次数

svn或mercurial版本控制word文档

据我所知,微软在其最新版本的办公室中使用了某种基于xml的表示法.如果这是真的,那么我会假设版本控制可以工作,虽然你显然必须用旧的解决任何嵌入式更改

<<<<<<

======

>>>>>>
Run Code Online (Sandbox Code Playgroud)

在加载单词之前标记它们.

这个问题提到了另一个问题,但似乎已经认定版本控制根本不适用于Word,我想知道为什么?

版本控制(即Subversion)是否适用于文档跟踪?

svn mercurial ms-word

4
推荐指数
1
解决办法
2971
查看次数

在任何编译器中c ++ 0x库可用性?

毫无疑问,该标准将需要数年才能实现,因为它看起来很棒,所以很臭.但我正在阅读它,至少库添加(特别是哈希映射)会立即真正有用.我注意到在g ++文档中我可以获得4.3或更高版本并使用标志来请求新功能,无论存在什么,但我想知道是否有任何方法可以获得库.现在内置的许多最好的增强功能非常棒,最后内置了一个像样的随机数设备!

那么,有没有我现在可以使用的编译器有一个相当完整的库,即使它不能使用一些很酷的新语言功能,如汽车?

c++ c++11

4
推荐指数
1
解决办法
1286
查看次数

用于高质量四元数的数学等效于矩阵变换

我有兴趣实现一个干净的解决方案,为3D转换提供4x4矩阵的替代方案.四元数提供等效的旋转,但没有翻译.因此,除了Quaternion之外,还需要一个额外的平移向量(tx,ty,tz).我一直看到它表明你需要12个矩阵表示值,而基于四元数的表示只需要7个.

我不明白的是如何操纵翻译价值.

对于四元数的旋转,没问题.

对于矢量v,轴矢量x和角度a:

q = cos(a/2) + x sin(a/2)
Run Code Online (Sandbox Code Playgroud)

要旋转矢量:

v' = qvq^-1
Run Code Online (Sandbox Code Playgroud)

对于多个旋转,您可以将变换应用于四元数,并且只有在进行最终旋转时才必须将其应用于数据.这就是矩阵变换在3D图形系统中非常好的原因.

好的,现在如果翻译进入,我该怎么办?

给定的向量转换是:

T = (tx,ty,tz)
v' = qvq^-1 + T
Run Code Online (Sandbox Code Playgroud)

如果我想对此应用旋转和平移操作,我将不得不修改T和q.结果应该是什么?

math 3d geometry

4
推荐指数
1
解决办法
662
查看次数

在OpenSSL中使用AES256示例时出现链接错误

在Ubuntu 14.04上使用gcc 4.8.2编译openssl示例.

gcc SSLsample.c -lssl3
Run Code Online (Sandbox Code Playgroud)

链接器提供未定义的符号:

SSLsample.c:(.text+0x25d): undefined reference to `EVP_CIPHER_CTX_new'
SSLsample.c:(.text+0x272): undefined reference to `EVP_aes_256_cbc'
SSLsample.c:(.text+0x294): undefined reference to `EVP_DecryptInit_ex'
SSLsample.c:(.text+0x2bc): undefined reference to `EVP_DecryptUpdate'
SSLsample.c:(.text+0x2ed): undefined reference to `EVP_DecryptFinal_ex'
SSLsample.c:(.text+0x309): undefined reference to `EVP_CIPHER_CTX_free'
collect2: error: ld returned 1 exit status
make: *** [sample] Error 1
Run Code Online (Sandbox Code Playgroud)

引擎下有很多库,但它们被列为备用实现,主要实现是什么?

与-lssl和-lcrypt链接的建议听起来不错,但看起来:

gcc SSLsample.c  -lssl -lcrypt
/tmp/cczNovmQ.o: In function `main':
SSLsample.c:(.text+0x4a): undefined reference to `ERR_load_crypto_strings'
SSLsample.c:(.text+0x4f): undefined reference to `OPENSSL_add_all_algorithms_no\
conf'
SSLsample.c:(.text+0x59): undefined reference to `OPENSSL_config'
SSLsample.c:(.text+0xc6): undefined reference to `BIO_dump_fp' …
Run Code Online (Sandbox Code Playgroud)

c linker openssl

4
推荐指数
2
解决办法
6214
查看次数

如何在Java中快速编写大型二进制数据?

我正在写一个STL文件,它由一个80字节的头,一个4字节的整数组成,然后是50个字节的记录,每个字节由浮点数和一个短整数组成.

使用RandomAccessFile我可以轻松地写入数据,但速度非常慢.它使用与DataOutputStream相同的接口.如果有一种简单的方法来缓冲数据输出流,我可以使用它,但烦人的部分是需要写出所有记录,并在最后计算三角形输出的数量,并将该整数写入字节81- 84.

直截了当但缓慢的方式,只关注大部分工作,即写下每个方面:

public static void writeBinarySTL(Triangle t, RandomAccessFile d) throws IOException {
    d.writeFloat((float)t.normal.x);
    d.writeFloat((float)t.normal.y);
    d.writeFloat((float)t.normal.z);
    d.writeFloat((float)t.p1.x);
    d.writeFloat((float)t.p1.y);
    d.writeFloat((float)t.p1.z);
    d.writeFloat((float)t.p2.x);
    d.writeFloat((float)t.p2.y);
    d.writeFloat((float)t.p2.z);
    d.writeFloat((float)t.p3.x);
    d.writeFloat((float)t.p3.y);
    d.writeFloat((float)t.p3.z);
    d.writeShort(0);
}
Run Code Online (Sandbox Code Playgroud)

是否有任何优雅的方法将这种二进制数据写入块状快速I/O类?

在我看来,STL文件格式应该首先是低字节,Java可能是高字节优先.所以也许我的所有writeFloats都是徒劳的,我必须找到一个手动转换,以便它以小端形式出现?

如果必须,我愿意关闭文件,最后在randomaccessfile中重新打开,寻找字节81并写入计数.

因此,此编辑是对应该起作用的问题的两个答案的回应.第一个是添加BufferedWriter.结果非常快.我知道这台笔记本电脑是高端的SSD,但我并不期待这种性能,更不用说来自Java了.只需缓冲输出,在0.5秒内写入96Mb文件,在1.5秒内写入196Mb.

为了了解nio是否会提供更高的性能,我试图通过@ sturcotte06实现解决方案.代码不会尝试写标题,我只关注每个三角形的50字节记录.

public static void writeBinarySTL2(Shape3d s, String filename) {
    java.nio.file.Path filePath = Paths.get(filename);

    // Open a channel in write mode on your file.
    try (WritableByteChannel channel = Files.newByteChannel(filePath, StandardOpenOption.CREATE)) {
        // Allocate a new buffer.
        ByteBuffer buf = ByteBuffer.allocate(50 * 1024);
        ArrayList<Triangle> triangles = s.triangles;
        // Write …
Run Code Online (Sandbox Code Playgroud)

java nio binary-data

4
推荐指数
2
解决办法
1718
查看次数

自动增量语法错误

Sybase手册和大量示例声称我可以写:

   create table run_log (
     run_id        integer not null default autoincrement
   );
Run Code Online (Sandbox Code Playgroud)

但Sybase 15表示存在语法错误 default

syntax auto-increment sybase-ase

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

C++ 0x标准中有什么东西可以支持单独的模板编译吗?

在当前的g ++中,我通常包含所有模板化函数,它们将模板参数作为参数,因为必须为每个实例编译它们.

template<typename T>
class A {
public:
  void f() { ... }
};
Run Code Online (Sandbox Code Playgroud)

所以在不同的来源中,我会写:

#include <A.hh>
A<int> a1;
a1.f();

A<double> a2;
a2.f();
Run Code Online (Sandbox Code Playgroud)

有时,当我一直急于不内联大方法时,我已经手动指定了哪些类将在源文件中使用,但它确实令人讨厌:

template<typename T>
A::A() { ... }

template<typename T>
void A::f() { ... }

A<int>; // manually trigger code generation for int and double
A<double>; 
Run Code Online (Sandbox Code Playgroud)

显然,不同的IDE和编译器都有支持这一点的机制.是否有任何标准强制要求,和/或g ++是否支持这样的事情?

g++ c++11

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

标签 统计

c++ ×2

c++11 ×2

g++ ×2

3d ×1

auto-increment ×1

binary-data ×1

c ×1

cvs ×1

emacs ×1

geometry ×1

java ×1

linker ×1

matching ×1

math ×1

mercurial ×1

ms-word ×1

nio ×1

openssl ×1

regex ×1

svn ×1

sybase-ase ×1

syntax ×1

templates ×1