小编luc*_*nte的帖子

git commit - 格式?

在git的提交消息(COMMIT_EDITMSG)中使用的推荐格式是什么,如果有的话?

git version-control formatting conventions

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

std :: function复制参数?

我的代码:

#include <iostream>
#include <functional>
using namespace std;

struct A {
  A() = default;
  A(const A&) {
    cout << "copied A" << endl;
  }
};

void foo(A a) {}

int main(int argc, const char * argv[]) {
  std::function<void(A)> f = &foo;
  A a;
  f(a);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在控制台上看到"复制A"两次.为什么对象被复制两次而不是一次?我怎样才能正确预防?

c++ c++11 std-function

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

CSS选择接下来的两个元素

我有以下HTML:

...
<li>...</li>
<li>...</li>
<li class="last">...</li>

<li class="selected">...</li>  # <- this
<li>...</li>                   # <- this
<li class="last">...</li>      # <- this

<li>...</li>
<li>...</li>
<li class="last">...</li>
....
Run Code Online (Sandbox Code Playgroud)

所以,基本上是三个lis的组,最后一个具有特定类,并且在其中一个组中,第一个li具有特殊类.

有没有办法用纯CSS来选择li带有selected类和接下来的两个,在上面的代码中标记?

我已经设法选择了下一个使用li.selected + li,但这对那之后的那个不起作用.

html css css-selectors

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

如果非零,则C++递增std :: atomic_int

我正在使用std::atomics为参考计数器实现一个指针/弱指针机制(像这样).为了将弱指针转换为强指针,我需要原子化

  • 检查强引用计数器是否非零
  • 如果是这样,增加它
  • 知道是否有变化.

有没有办法使用std::atomic_int?我认为必须使用其中之一compare_exchange,但我无法弄明白.

c++ atomic c++11

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

具有嵌套CSS的类与ID

假设这样的HTML:

<div id="header">
  <span class="title">Title</span>
  <!-- more spans and other things here -->
</div>
Run Code Online (Sandbox Code Playgroud)

这将与嵌套的CSS一起使用:

#header .title { /* CSS */ }
Run Code Online (Sandbox Code Playgroud)

这当然有效,但我不喜欢class这里的用法.由于我title只需要一次风格,我想使用id.但是这个名称必须是这样的header_title(因为我可能在HTML中有其他标题),从而产生了CSS

#header #header_title { /* CSS */ }
Run Code Online (Sandbox Code Playgroud)

现在这似乎打败了嵌套CSS的目的,然后我可以完全放弃第一个#header.

我无法找到一种"正确"的方法.我错过了什么,或者我只需要在这里使用一些"脏"代码?

html css class css-selectors

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

如何绘制思维导图

我正在研究绘制思维导图的算法.重点是智能地安排节点,这样就没有重叠,看起来分布很好.作为示例,请参阅此屏幕截图(来自MindNode):

应该是什么样子

考虑到每个节点占用的空间,有关如何很好地安排这个结构的任何想法?你知道我可以研究的任何代码吗(有点像graphviz的东西)?

在它出现之前,我不是在寻找像这样的 "物理模拟"算法,或者像dot 这样的完成程序.最后我想在JS中实现它,但是为了理解算法,任何语言都可以.

html javascript css algorithm mindmapping

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

停用正文的滚动但保留滚动条

如何禁用body滚动条,但让它在屏幕上保持可见?作为一个例子,请参阅Facebook的影院模式:

Facebook屏幕

html css scroll

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

提升异常的错误信息

使用时boost::exception,了解异常所携带的数据的首选方法是什么?在boost文档中,给出了以下示例:

catch( io_error & e )
    {
    std::cerr << "I/O Error!\n";

    if( std::string const * fn=get_error_info<file_name>(e) )
        std::cerr << "File name: " << *fn << "\n";

    if( int const * c=get_error_info<errno_code>(e) )
        std::cerr << "OS says: " << strerror(*c) << "\n";
    }
Run Code Online (Sandbox Code Playgroud)

这似乎有点尴尬,特别是如果异常冒泡了很多层并且理论上可以获得大量元数据.因此,我认为记录每个异常类的可能错误信息是有意义的.然后我可能还需要一些函数的文档,关于异常中可能包含的信息.最后我觉得我在文档中有完全相同的结构,就像我在代码中使用的那样,如果我只使用类似下面的结构:

struct FileException {
  string* filename; // NULL or string
}
Run Code Online (Sandbox Code Playgroud)

然后我可以在catch块中更改此信息:

catch (FileException& e) {
  e.filename = filename;
  throw;
}
Run Code Online (Sandbox Code Playgroud)

这种简单的方法可以解决大部分文档,并从所有安全性中获益(例如,不尝试从中获取文件名MathException).然而人们使用提升.我缺少动态方法的一大优势吗?如何记录代码中的错误信息?

c++ boost exception

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

Rails attr_readonly不起作用

根据这个问题和文档的attr_readonly下面应该是可能的:

class MyModel < ActiveRecord::Base
  attr_accessible :foo
  attr_readonly :bar
end

m = MyModel.create(foo: '123', bar: 'bar') # Should work
m.update_attributes(bar: 'baz')            # Should not work
Run Code Online (Sandbox Code Playgroud)

然而,第一个失败,说我不能大规模分配bar.我在做什么?

activerecord ruby-on-rails

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

打包的Ruby字符串中的奇怪行为

我对一些红宝石行为感到困惑.看下面的代码:

[127].pack("C") == "\x7f"   # => true
Run Code Online (Sandbox Code Playgroud)

这是有道理的.现在:

[128].pack("C")             # => "\x80"
"\x80"                      # => "\x80"
[128].pack("C") == "\x80"   # => false
Run Code Online (Sandbox Code Playgroud)

该组选"C"表示8-bit unsigned (unsigned char),这应该是罚款存储值128.两个字符串也打印相同的东西,为什么它们不相等?这与编码内容有关吗?

我在ruby 2.0.0p247上.

ruby string encoding

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