小编Jac*_*icz的帖子

用于音乐创作的高级编程语言

我想写一首互动歌曲.它将包含状态和逻辑.监听器/用户应该能够使用GUI或MIDI接口修改某些状态变量.听众可访问的变量不必直接表示节奏,音高或任何其他音乐属性.他们宁愿代表逻辑将处理的值,以便对歌曲进行更改.

我是否必须自己编写这样的平台或者已经存在符合我想象的东西?

programming-languages

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

需要帮助BOOST_FOREACH /编译器错误

我知道boost或编译器应该是最后的责任,但我在这里看不到另一种解释.我正在使用msvc 2008 SP1并提升1.43.

在下面的代码片段中,执行永远不会离开第三个 BOOST_FOREACH循环

typedef Graph<unsigned, unsigned>::VertexIterator Iter;

Graph<unsigned, unsigned> g;
g.createVertex(0x66);

// works fine
Iter it = g.getVertices().first, end = g.getVertices().second;
for(; it != end; ++it)
    ;

// fine
std::pair<Iter, Iter> p = g.getVertices();
BOOST_FOREACH(unsigned handle, p)
    ;

// fine
unsigned vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices())
    vertex_count++;

// oops, infinite loop
vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices()) 
    vertex_count++;

vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices())
    vertex_count++;

// ... last block repeated 6 times
Run Code Online (Sandbox Code Playgroud)

迭代器代码:

class Iterator 
    : …
Run Code Online (Sandbox Code Playgroud)

c++ boost visual-c++ boost-foreach

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

为什么挥发性不够?

我糊涂了.我之前的问题的答案似乎证实了我的假设.但正如此处所述, volatile不足以确保.Net中的原子性.MSIL中的增量和赋值等操作不会直接转换为单个本机OPCODE,或者许多CPU可以同时读取和写入相同的RAM位置.

澄清:

  1. 我想知道多个CPU上的写入和读取是否是原子的?
  2. 我理解挥发性是什么.但这够了吗?如果我想获得其他CPU写入的最新值,是否需要使用互锁操作?

c# synchronization

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

C++ 0x原子模板实现

我知道英特尔的TBB中存在类似的模板,除了我在谷歌或Boost库中找不到任何实现.

c++ synchronization c++11

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

多个 CPU 可以同时写入同一个 RAM 位置吗?

机器字大小(或更小)写入序列化了吗?只需一个本机操作码即可将寄存器内容复制到 RAM。

architecture memory cpu synchronization

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

为什么从最近的WDK版本中删除了lib.exe?

这是一个错误吗?Visual Studio 2008构建系统使用lib.exe来创建静态库.我使用WDK的setenv.bat设置构建环境,然后启动devenv.exe/USEENV.构建用户模式程序和dll工作,但由于缺少lib.exe静态库无法构建.

wdk visual-studio

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