小编spr*_*aff的帖子

<a href="javascript:foo(this)">传递Window,我想要标签元素本身

我希望这打印"a",因为当我调用时foo(this),参数似乎是链接标记.

<script type="text/javascript">
    function foo (e) {
        alert (e .tagName);
    }
</script>
<a href="javascript:foo(this)">click</a>
Run Code Online (Sandbox Code Playgroud)

相反,它打印"未定义".如果我alert(e)说"对象窗口".我如何foo知道推出了哪个元素?没有通过/查找ID.

html javascript

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

在sed替换字符串中转义换行符

以下是我尝试在运行时b使用换行符替换字符的尝试sedbash

$> echo 'abc' | sed 's/b/\n/'
anc
Run Code Online (Sandbox Code Playgroud)

不,那不是它

$> echo 'abc' | sed 's/b/\\n/'
a\nc
Run Code Online (Sandbox Code Playgroud)

不,那也不是.我想要的输出是

a
c
Run Code Online (Sandbox Code Playgroud)

救命!

unix bash solaris escaping sed

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

assert()应该在哪里使用C resp.C++?

我们应该assert()具体使用这个功能的地方有哪些?如果确定整数值是否大于零或指针是否为空,我们可以简单地使用私有函数来检查它.在这种情况下,我们应该在哪里使用assert()自定义书面支票?

c c++ debugging assert

22
推荐指数
2
解决办法
7041
查看次数

这些关于GCC优化的评论是否有效?

Demystifying the Restrict Keyword的底部是一个奇怪的建议:

由于在GCC中完成调度的顺序,简化表达式总是更好.不要将内存访问与计算混合在一起.代码可以重写如下:

然后有一个例子基本上改变了这一点

velocity_x[i] += acceleration_x[i] * time_step;
Run Code Online (Sandbox Code Playgroud)

进入这个

const float ax  = acceleration_x[i];       // Then the same follows for y, z
const float vx  = velocity_x[i];           // etc for y, z
const float nvx = vx + ( ax * time_step ); // etc
velocity_x[i]   = nvx;                     // ...
Run Code Online (Sandbox Code Playgroud)

真?我认为与优化编译器必须做的其他事情相比,这种转换是微不足道的,例如lambda参数std::foreach等等.

这只是陈旧,愚蠢的建议吗?或者,GCC不能或不会这样做有充分的理由吗?(这让我担心将上述内容写成velocity += acceleration * time_step我的Vector3f课程!

c c++ optimization gcc

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

为什么可以在命名空间块之外定义模板<T>而不是模板<>?

这是一些不编译的代码.

namespace ns
{
    class foo
    {
        template <typename T> int bar (T *);
    };
}

template <typename T>
int ns :: foo :: bar (T*) // this is OK
{
    return 0;
}

template <>
int ns :: foo :: bar <int> (int *) // this is an error
{
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

错误是:"在'template int ns :: foo :: bar(T*)'的定义中,'template int ns :: foo :: bar(T*)'在不同命名空间[-fpermissive]中的特化"

这是一个编译的版本:

namespace ns
{
    class foo
    {
        template <typename T> int bar (T …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

前向声明模板函数的必要性

我最近创建了这个示例代码来说明C++ 11可变参数模板函数的用法.

template <typename Head, typename... Tail> void foo (Head, Tail...);
template <typename... Tail> void foo (int, Tail...);
void foo () {}

template <typename... Tail>
void foo (int x, Tail... tail)
{
    std :: cout << "int:" << x;
    foo (tail...);
}

template <typename Head, typename... Tail>
void foo (Head x, Tail... tail)
{
    std :: cout << " ?:" << x;
    foo (tail...);
}

foo (int (123), float (123)); // Prints "int:123 ?:123.0"
Run Code Online (Sandbox Code Playgroud)

如果foo省略了前向声明的前两行,则会打印出来int:123int:123.这让一位经验丰富,知识渊博的C++程序员感到惊讶.

他确信前向声明不应该是必要的,因为在两阶段查找的第二阶段之前,身体不会被实例化.他认为编译器(gcc …

c++ variadic-functions one-definition-rule variadic-templates c++11

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

有没有免费无限制的专辑图片搜索API服务?

Google的自定义搜索API每天最多可限制100次查询.这远远低于我的预期.我想将这个图稿搜索功能添加到我的应用程序中.非常感谢.

search-engine artwork

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

移动物体的近似,增量最近邻算法

赏金

这个问题提出了几个问题.赏金将回答整体上的问题.


这是我一直在玩的问题.

注意我对不在欧几里得空间的解决方案特别感兴趣.

有一组Actors形成一个大小为K的人群.d(ActorA,ActorB)对于任何两个演员来说,距离很容易计算(解决方案应该适用于'距离'的各种定义)并且我们可以找到任何给定Actor使用的N个最近邻居的集合任何一种已建立的算法.

这个邻居集在第一瞬间是正确的,但是Actors总是在移动,我想维护每个Actor的N个最近邻居的进化列表.我感兴趣的是近似解决方案,它比完美解决方案更有效.

  1. 在引入错误之后,解决方案应该收敛到正确性.
  2. 如果错误变得太大而有时执行完全重新计算是可以接受的,但检测这些错误应该是便宜的.

到目前为止,我一直在使用一个朋友的朋友算法:

recompute_nearest (Actor A)
{
    Actor f_o_f [N*N];
    for each Actor n in A.neighbours
        append n to f_o_f if n != A and n not in f_o_f

    Distance distances [N*N];
    for 0 <= i < f_o_f.size
        distances [i] = distance (A, f_o_f [i])

    sort (f_o_f, distances)
    A .neighbours = first N from f_o_f
}
Run Code Online (Sandbox Code Playgroud)

当人群缓慢移动且N适当大时,这表现得相当好.它在小错误之后收敛,满足第一个标准,但是

  • 我没有很好的方法来检测大错误, …

algorithm optimization distance approximation spatial-index

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

哪种SVG支持检测方法最好?

有人已经问过我关于在浏览器中检测SVG支持的问题,但有三个主要的解决方案,而不是很多关于每个优点的讨论.

那么:哪个,哪个最好?在便携性和正确性方面,即.假阴性(即"没有svg")是不受欢迎的,但是可接受的; 误报不是.

图表A:

var testImg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';

var img = document.createElement('img')

img.setAttribute('src',testImg);

return img.complete; 
Run Code Online (Sandbox Code Playgroud)

图表B:

return document.implementation.hasFeature(
    "http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1");
Run Code Online (Sandbox Code Playgroud)

图表C:

return !! document.createElementNS &&
       !! document.createElementNS (
             'http://www.w3.org/2000/svg',
             "svg")
      .createSVGRect;
Run Code Online (Sandbox Code Playgroud)

javascript svg browser-feature-detection

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

我怎样才能故意丢弃[[nodiscard]]返回值?

说我有

[[nodiscard]] int foo ()
{
    return 0;
}

int main ()
{
    foo ();
}
Run Code Online (Sandbox Code Playgroud)

然后

error: ignoring return value of ‘int foo()’, declared with attribute nodiscard [-Werror=unused-result]
Run Code Online (Sandbox Code Playgroud)

但如果

int x = foo ();
Run Code Online (Sandbox Code Playgroud)

然后

error: unused variable ‘x’ [-Werror=unused-variable]
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方式告诉编译器"我想丢弃这个[[nodiscard]]值"?

c++ c++17

18
推荐指数
5
解决办法
2254
查看次数