小编Gio*_*hal的帖子

mpeg 2解码

我想了解视频和音频解码的工作原理,特别是定时同步(如何获得30fps视频,如何将其与音频耦合等).我不想知道所有的细节,只是它的本质.我希望能够编写实际视频/音频解码器的高级简化.

你能指点一下吗?MPEG2视频/音频解码器的实际C/C++源代码将是理解我认为的那些事情的最快方式.

c c++ video mpeg codec

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

宏递归扩展到序列

是否可以定义BUILD(a, i)扩展为" x[0], x[1], x[2], ..., x[i]" 的C/C++宏" "?像

#define BUILD(x, 0) x[0]
#define BUILD(x, 1) x[0], x[1]
#define BUILD(x, 2) x[0], x[1], x[2]
...
Run Code Online (Sandbox Code Playgroud)

似乎BOOST_PP_ENUM_PARAMS可以完成这项工作.我想我可以#include boost,但我很想知道它是如何以及为什么有效,任何人都可以解释一下?

我想调用一个带有f(int, ...)N个int参数的函数x[i],0 <= i <N.其中N已知ceil(sizeof(A) / sizeof(B)).所以不幸的是,我不能使用varargs或模板.

c++ c-preprocessor

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

LaTeX中的一组实现?

考虑以下在latex中直接实现列表:

\newcommand{\add@to@list}[2]{%
  \ifx#2\@empty%
    \xdef#2{#1}%
  \else%
    \xdef#2{#2,#1}%
  \fi%
}%
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法来实现一个集合(没有重复元素的列表)?

latex list set

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

游戏交叉编译和包装

有些朋友和我想开发一款游戏.任何语言都可以.我已经在C编程多年了,但之前从未写过游戏.我们其中一个人对SDL有点了解.学习Python + pygame也是一个很好的借口.

我们希望我们的游戏"独立".通过独立,我的意思是大多数用户(至少Linux,Mac和Windows)不必手动下载和安装除包之外的任何其他东西.如果安装自动处理缺少的依赖项,则可以.如果包包含二进制文件,我们希望能够使用Linux中的交叉编译生成它们.

我们应该如何打包和构建项目,以及哪种语言最适合?

c python packaging cross-platform cross-compiling

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

Doxygen/C++:命名空间列表中的全局命名空间

我可以在 Doxygen 生成的文档的命名空间列表中显示全局命名空间吗?我有一些函数extern "C",它们出现在声明它们的头文件的文档中,但不在命名空间列表中,给人的印象是它们并不真正存在......

c++ doxygen global-namespace

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

GraphViz:要使用哪个图库?

我刚刚开始开发一个小的C++程序中使用的GraphViz的图形库,发现居然有3不同的API: libgraph,libcgraphlibagraph.WTF?

我想知道它们之间有什么区别,使用哪一个以及在哪里查找API文档.我查看了GraphViz 文档和邮件列表档案,但我发现了许多断链,很多错误或误导性的信息,现在我很困惑.

c++ graphviz

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

C++ 0x:内存排序

当前的C++ 0x草案在第29.3.9节和第293.10节,第1111-1112节中说明,在以下示例中:

// Thread 1
r1 = y.load(memory_order_relaxed);
x.store(1, memory_order_relaxed);

// Thread 2
r2 = x.load(memory_order_relaxed);
y.store(1, memory_order_relaxed);
Run Code Online (Sandbox Code Playgroud)

结果r1 = r2 = 1是可能的,因为每个线程的操作都是放松的,并且是不相关的地址.现在我的问题是关于以下(类似)示例的可能结果:

// Thread 1
r1 = y.load(memory_order_acquire);
x.store(1, memory_order_release);

// Thread 2
r2 = x.load(memory_order_acquire);
y.store(1, memory_order_release);
Run Code Online (Sandbox Code Playgroud)

我认为在这种情况下结果r1 = r2 = 1是不可能的.如果可能的话,y的负载将与商店同步(因此发生在之前).与x类似,x的加载将在商店到x之前发生.但是y的负载在存储到x之前(因此也发生在 - 之前)被排序.这创建了一个循环发生在之前的关系,我认为是不允许的.

c++ memory-model c++11

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

C++中未使用的朋友类

有没有办法检测(例如使用编译器警告)是否声明了类friend但是不访问私有成员,即.什么时候友谊没用?

c++ inheritance friend

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

影响gcc中的功能克隆/复制/恒定传播

gcc使用optimizations-on 运行时,它会在认为函数处于热路径或传播到函数参数的常量时克隆(复制)C函数.

更具体地说,这似乎是由fipa-cp-clone选项控制的.

有没有办法影响这个?比如使用某个属性标记一个参数,作为编译时常量(就像你可以在带有模板参数的C++中那样),这将导致函数被克隆?

c optimization gcc compiler-flags

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

你如何在Google Colaboratory中导入sagemath?

我可以举例说明如何在Google Colaboratory中导入sagemath吗?这不起作用:

!pip install sage
from sage.all import *
Run Code Online (Sandbox Code Playgroud)

python sage google-colaboratory

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