小编seh*_*ehe的帖子

在.vimrc中换行长行

我已经设置了一个colorcolumn=80,但我发现我无法在〜/ .vimrc中包含长行.

有没有像C这样的\连接方法?

例如,我试过这个,但它不起作用.

autocmd FileType python setlocal ai si et sta sw=4 \
textwidth=80 backspace=indent,eol,start fo=croql
Run Code Online (Sandbox Code Playgroud)

vim

19
推荐指数
1
解决办法
6228
查看次数

解码Opus音频数据

我正在尝试将Opus文件解码回原始的48 kHz.但是,我无法找到任何示例代码来执行此操作.

我目前的代码是这样的:

void COpusCodec::Decode(unsigned char* encoded, short* decoded, unsigned int len)
{
     int max_size=960*6;//not sure about this one

     int error;
     dec = opus_decoder_create(48000, 1, &error);//decode to 48kHz mono

     int frame_size=opus_decode(dec, encoded, len, decoded, max_size, 0);
}
Run Code Online (Sandbox Code Playgroud)

"编码"这个参数可能是更大量的数据,所以我认为我必须把它分成帧.我不知道怎么能这样做.

作为Opus的初学者,我真的害怕搞砸了.

有人可能会帮忙吗?

c++ windows audio codec opus

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

SOLR完全匹配提升包含完全匹配的文本

我找不到一个更好的标题,我希望稍后如果可能的话在你的最终消遣中改变它.

我的问题:

我有一个音乐艺术家的数据库.这些看起来像这样:"dr.dre feat.ano","eminem&dr.dre","dr.dre feat.ll cool j","dr.dre","dr.dre feat.eminem&skylar grey" .我们只有两个字段:id和name.

在默认模式solr核心上,我运行此查询:"q = dr.dre",结果还可以,但不完美,如下所示:

  • 博士.dre feat.阿肯
  • 埃米纳姆博士 DRE
  • 博士.dre feat.冷静的
  • 博士.DRE
  • ...

请注意,他们得到了完全相同的分数.

我想要的是将"dr.dre"作为第一个结果,然后是所有其他结果,如下所示:

  • 博士.dre << - 博士.dre是第一位的
  • 埃米纳姆博士 DRE
  • 博士.dre feat.冷静的
  • 博士.dre feat.阿肯
  • ...

我该如何实现这一目标?(过滤器,标记器,复制字段等等并不重要.我无法更改solr中的代码,因为我在其他论坛上看到过建议)

谢谢.

solr exact-match solr-boost

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

具有语法突出显示的Eclipse复制代码

我正在为我的开发团队编写一份编程指南文档.我用MS Word.我们使用Eclipse CDT(C++).我需要使用EclipseWord的语法高亮复制粘贴C++代码.我已经尝试过Notepad ++,它可以导出带有语法高亮的文本,但它的突出显示仅限于基本语法(它不知道定义的类,枚举等...).Eclipse语法高亮非常强大,我希望使用它的语法高亮直接从Eclipse导出到Word.

是否有任何Eclipse插件可以实现此目的?或者一些技巧(没有拍摄屏幕快照)?

c++ eclipse rtf syntax-highlighting eclipse-cdt

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

如何在VIM命令模式下使用vimdiff?

我想用于:vimdiff file1 file2在VIM命令模式下区分这些文件,但是我收到了一条错误消息E492: Not an editor command: vimdiff.我忘了什么?怎么解决?

根据Vim手册,vimdiff命令应该可用

vim vimdiff

17
推荐指数
2
解决办法
7269
查看次数

make_shared <>()中的WKWYL优化是否会对某些多线程应用程序造成损失?

几天前,我碰巧看到Stephan T. Lavavej的这个非常有趣的演讲,提到了" 我们知道你住在哪里 "的优化(抱歉使用问题标题中的首字母缩略词,所以SO警告我这个问题可能已被关闭,否则),是Herb Sutter在机器架构上的精彩之作.

简而言之," 我们知道你住在哪里 "的优化包括将引用计数器放在与make_shared正在创建的对象相同的内存块上,从而产生一个单独的内存分配而不是两个并使其shared_ptr更紧凑.

总结我从上面的两个报告后得知,但是,我开始怀疑WKWYL优化是否可以不降低性能的情况下,shared_ptr被多个线程访问在不同内核上运行.

如果引用计数器接近内存中的实际对象,实际上它们应该更有可能被提取到对象本身相同的高速缓存行中.反过来,如果我正确地得到了这个教训,那么即使在他们不需要时,线程也会在竞争同一个缓存行时减慢速度.

假设其中一个线程需要多次更新引用计数器(例如,当复制shared_ptr周围时),而其他线程只需要访问指向的对象:这不会通过使它们竞争来减慢所有线程的执行速度对于相同的缓存行?

如果refcount存在于内存中的其他位置,我会说争用不太可能出现.

这对于make_shared()在类似情况下使用是否是一个很好的论据(当然,只要它实现了WKWYL优化)?或者我的推理中有谬误吗?

c++ optimization caching shared-ptr c++11

17
推荐指数
2
解决办法
1927
查看次数

Vim快捷键的英文助记符

我意识到Vim的主要作者是荷兰人,所以我也会满足于那些人.我很感兴趣,Vim的"控制键"是否与英语有相同之处?你知道,Ctrl-O表示Open,Ctrl-N表示New,依此类推.

Vim的一些"控制键"可以分配一些含义

(a) append / (i) insert
(w) word / b (back one word)
Run Code Online (Sandbox Code Playgroud)

这些只是我想到的那些.

他们都有一些意义(:e?)

如果我知道它们意味着什么,我会发现它们更容易记住它们; 它们不仅仅是随机使用的钥匙.

vim

16
推荐指数
2
解决办法
3422
查看次数

lambda可以安全地返回复制变量的地址吗?

给出以下示例代码:

int main()
{
    int i;
    auto f = [=]()mutable->int*
    {
            return &i;
    };

    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. g ++ v.4.8.1警告"返回的局部变量'i'的地址".
  2. Clang v.3.2(MacOS的Clang)警告说"与本地变量'i'相关联的堆栈存储器的地址返回".
  3. VS2012和VS2013 RC都没有发出任何警告.

我对lambdas的理解是编译器将生成一个仿函数类.该仿函数类将包含所有复制变量的成员(i在示例中).我相信在我的代码的上下文中,只要f存在,就可以安全地返回其成员之一的地址.在我看来,所有编译器都错了.我认为关于在超出范围之后使用该f成员的地址的警告是有效的,但关于"本地变量'我'的警告是不正确的/误导性的.我对吗?if

c++ lambda c++11

16
推荐指数
1
解决办法
440
查看次数

如何在匹配/匹配后使用"sed"删除2行?

我有以下命令:sed -i -e '/match1/,+2d' filex,在文件"file x"中找到匹配"match1"后删除2行.我想为它添加几个匹配项,比如match1,match 2 ....

所以在找到任何匹配后它会删除2行,我该如何实现呢?

linux shell sed

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

检测Spirit语义操作中的参数类型

一般情况:我无法弄清楚为什么我的Spirit语法/语义动作没有编译.

有时,编译器会抱怨分配或类型不兼容,我不知道什么是错的.问题出现在两个主要方面:

  • 预测规则/表达式的合成属性的类型
    • 因此,预测哪些类型的属性可以合法地定义为规则的公开属性(依赖于构建转换,融合适配器或Spirit自定义点)
  • 匹配我的语义动作的参数类型,以便
    • 编译器将能够编译函数调用
    • 调用不会在进程中调用不必要的隐式转换

编译器错误不是完全易处理的,文档是错误的,或者我误解了它.

无论如何,有没有办法确切地找出Spirit传入我的语义行为的方式?

示例代码:

struct mybase             { int a,b; };
struct myderived : mybase { int c,d; };

BOOST_FUSION_ADAPT_STRUCT(mybase,    (int,a)(int,b));
BOOST_FUSION_ADAPT_STRUCT(myderived, (int,a)(int,b)(int,c)(int,d));

auto base_expr = int_ >> int_; // avoids assigning to struct attribute

rule<decltype(f), mybase()   , space_type> base_       = int_ >> int_;
rule<decltype(f), myderived(), space_type> derived_    = base_ >> int_ >> int_;

myderived data;
bool ok = phrase_parse(f,l,derived_,space,data);
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,存在大量难以理解的错误.

(松散地改编自精神总表上的帖子)

c++ compiler-errors boost-spirit

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