小编sta*_*ole的帖子

在C++ 11中应该首先发生什么:原始字符串扩展还是宏?

此代码适用于Visual C++ 2013,但不适用于gcc/clang:

#if 0
R"foo(
#else
int dostuff () { return 23; }
// )foo";
#endif
dostuff();
Run Code Online (Sandbox Code Playgroud)

Visual C++首先删除if 0.Clang首先扩展R原始字符串(并且永远不会定义dostuff).谁是对的,为什么?

c++ rawstring c-preprocessor c++11

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

如何使用一组起点和目标点找到图表中最长的路径?

我有一个DAG(每边的成本/权重),并希望找到两组节点之间的最长路径.与图中的节点总数相比,两组起始节点和目标节点是不相交的并且尺寸较小.

我知道如何在一个开始节点和目标节点之间有效地执行此操作.使用多个,我可以列出从每个开始到每个目标节点的所有路径并选择最长的路径 - 但这需要二次数的单路径搜索.有没有更好的办法?

computer-science graph path-finding directed-acyclic-graphs

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

实际使用的fwidth glsl函数是什么?

每次我醉酒浏览,所以我看到一个未解答的宽带问题.它让我想知道它实际上是做什么的.

阅读文档是:abs(dFdx(p))+ abs(dFdy(p)).

因此,经典的mip选择不是max(dx,dy).是替代mip选择吗?但我找不到abs(dx)+ abs(dy)会更好的情况.必须有一些siggraph纸或常见的算法,我完全没有使用该功能.它必须非常受欢迎,因为它使它成为GLSL.我唯一能想到的是我失踪的一些2d后置滤镜.
但是什么?我相信这里有人知道,一旦你看到它,这是显而易见的.那么:什么算法使用abs(dx)+ abs(dy)?

opengl graphics shader rendering glsl

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

为什么std :: unique_ptr重置与赋值不一样?

我想知道为什么

std::unique_ptr<MyClass> p = new MyClass; 
Run Code Online (Sandbox Code Playgroud)

不起作用,但是

std::unique_ptr<MyClass> p;
p.reset(new MyClass);
Run Code Online (Sandbox Code Playgroud)

很好.我有点理解他们是如何不同的,但我想知道为什么做出选择使他们与众不同.分配与重置不一样的危险是什么?

c++ initialization variable-assignment unique-ptr c++11

11
推荐指数
2
解决办法
1417
查看次数

如何在c中获取lua表的表长度?

我有从lua调用的ac函数.第一个参数是表.该表被滥用为底层api的数字输入数组.所以现在我的代码看起来像这样:

int n = 0;
lua_pushnil ( L );
while ( lua_next ( L, 2 ) ) {
   n++;
   lua_pop ( L, 1 );
}
int *flat = alloca ( n * 4 );
lua_pushnil ( L );
int i = 0;
while ( lua_next(L,2) ) {
   flat[i++] = (int)lua_tonumber( L, -1 ); 
   lua_pop ( L, 1 );
}
Run Code Online (Sandbox Code Playgroud)

我键入了代码盲,所以请原谅错误.也没有错误检查.但问题是我必须做两次while循环.有一种简单的方法可以避免这种情况吗?我想针对输入良好的情况进行优化 - 一个整数表.

lua

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

有没有好的 GLSL 哈希函数?

所以我仍然为我对这个问题的古老评论而获得赞成:这个 GLSL rand() one-liner 的起源是什么?

这让我开始思考,一个好的 GLSL 哈希函数应该是什么样的?它有明显的用例,例如 Perlin 噪声。我会在一个好的实现中寻找一些属性。

  • 在不同精度(中、高)下稳定。这可以是可配置的。
  • 应该可以在 ES2 中使用,所以它不能使用整数支持
  • 仅 ALU,无纹理
  • 不是在寻找加密质量,而是寻找大周期和“感知”随机性
  • 理想情况下应该在最低规格的 ES2 实现上产生相同的结果

实际上,我认为大多数人只是通过将 x,y 输入与一些素数相乘,相加,再次相乘,然后在具有最近采样的随机数平铺纹理中查找结果来混合它们。

所以这个问题不是关于寻找“答案”而是关于是否有一个好的方法来做到这一点的好奇心。我也想知道关于为什么不可能的争论。

math gpu glsl numerics

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