如何为外部git存储库创建github镜像,使其显示为"真实镜像",例如,如https://github.com/mirrors?
到目前为止,我使用以下方法设置镜像:
cd /path/to/bare/repository
git remote add --mirror github git@github.com:user/repo.git
Run Code Online (Sandbox Code Playgroud)
并配置post receive hook来做一个git push --quiet github.但是,这样,github无法识别镜像.
任何想法如何以github的方式做到这一点,以便"镜像来自"出现在repostiory名称下面?
如何根据某个程序条件将a绑定std::ostream到一个std::cout或一个std::ofstream对象?虽然这有多种原因无效,但我想实现在语义上等同于以下内容的东西:
std::ostream out = condition ? &std::cout : std::ofstream(filename);
Run Code Online (Sandbox Code Playgroud)
我见过一些不例外的示例,例如来自http://www2.roguewave.com/support/docs/sourcepro/edition9/html/stdlibug/34-2.html的示例:
int main(int argc, char *argv[])
{
std::ostream* fp; //1
if (argc > 1)
fp = new std::ofstream(argv[1]); //2
else
fp = &std::cout //3
*fp << "Hello world!" << std::endl; //4
if (fp!=&std::cout)
delete fp;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道一个更好的,异常安全的解决方案?
我不明白为什么初始化程序列表不能用于运算符的RHS.考虑:
class foo { };
struct bar
{
template<typename... T>
bar(T const&...) { }
};
foo& operator<<(foo& f, bar const&) { return f; }
int main()
{
foo baz;
baz << {1, -2, "foo", 4, 5};
return 0;
}
Run Code Online (Sandbox Code Playgroud)
最新的Clang(gcc也)抱怨:
clang.cc:14:9: error: initializer list cannot be used on the right hand side of operator '<<'
baz << {1, -2, "foo", 4, 5};
^ ~~~~~~~~~~~~~~~~~~~~
^ ~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
为什么C++标准会禁止这个?或者换句话说,为什么这会失败而不是
baz << bar{1, -2, "foo", 4, 5};
Run Code Online (Sandbox Code Playgroud)
?
如何将lambda指定为默认参数?我想这样做:
int foo(int i, std::function<int(int)> f = [](int x) -> int { return x / 2; })
{
return f(i);
}
Run Code Online (Sandbox Code Playgroud)
但我的编译器(Mac OS X上的g ++ 4.6)抱怨:
error: local variable 'x' may not appear in this context
Run Code Online (Sandbox Code Playgroud)
编辑:的确,这是一个编译器错误.上面的代码适用于最新版本的gcc(4.7-20120225).
告诉CMake使用LLVM链接器llvm-link而不是GNU ld作为链接器的最佳方法是什么?使用时配置项目
CXX=clang++ cmake <args>
Run Code Online (Sandbox Code Playgroud)
默认链接器似乎不受影响,保留usr/bin/ld(在Linux上).
这可能不使用单独的工具链文件吗?
当类使用多重继承时,如何安全地设计移动构造函数?
请考虑以下情形:
struct T { };
struct U { };
struct X : public T, public U
{
X(X&& other)
: T(std::move(other))
, U(std::move(other)) // already moved?!
{
}
};
Run Code Online (Sandbox Code Playgroud)
有没有办法移动 - 构建T和U安全?
c++ multiple-inheritance move-constructor move-semantics c++11
如何在C++ 14中编写通用转发lambda?
[](auto&& x) { return x; }
Run Code Online (Sandbox Code Playgroud)
在函数体内部,x是一个左值,所以这不起作用.
[](auto&& x) { return std::forward<decltype(x)>(x); }
Run Code Online (Sandbox Code Playgroud)
这正确地转发了lambda中的引用,但它总是按值返回(除非编译器省略了副本).
[](auto&& x) -> decltype(x) { return std::forward<decltype(x)>(x); }
Run Code Online (Sandbox Code Playgroud)
这将返回与参数相同的类型(可能-> auto&&也会起作用)并且似乎正常工作.
[](auto&& x) noexcept -> decltype(x) { return std::forward<decltype(x)>(x); }
Run Code Online (Sandbox Code Playgroud)
添加是否noexcept使这个lambda更适用,因此严格优于#3?
给定具有可变参数模板构造函数的类型将参数转发给实现类,是否可以限制使用SFINAE转发的类型?
首先,考虑带有通用引用的构造函数的非变量情形.这里可以禁止通过SFINAE转发非常量左值引用来代替使用复制构造函数.
struct foo
{
foo() = default;
foo(foo const&)
{
std::cout << "copy" << std::endl;
}
template <
typename T,
typename Dummy = typename std::enable_if<
!std::is_same<
T,
typename std::add_lvalue_reference<foo>::type
>::value
>::type
>
foo(T&& x)
: impl(std::forward<T>(x))
{
std::cout << "uref" << std::endl;
}
foo_impl impl;
};
Run Code Online (Sandbox Code Playgroud)
这种通用引用的限制很有用,因为否则实现类将接收类型的非const左值引用foo,它不知道.LWS的完整示例.
但是,如何使用可变参数模板?有可能吗?如果是这样,怎么样?天真的扩展不起作用:
template <
typename... Args,
typename Dummy = typename std::enable_if<
!std::is_same<
Args...,
typename std::add_lvalue_reference<foo>::type
>::value
>::type
>
foo(Args&&... args)
: impl(std::forward<Args>(args)...)
{
std::cout << "uref" …Run Code Online (Sandbox Code Playgroud) 我无法解决Vim错误E763:单词字符在拼写文件之间有所不同.
我的.vimrc包括多种拼写语言:
set spelllang=en,de,pt,fr
Run Code Online (Sandbox Code Playgroud)
当第一次运行Vim时,它会提示下载丢失的拼写文件并将其放入.vim/spell.用我上面的配置,这导致了三个文件de.utf-8.spl,fr.utf-8.spl和pt.utf-8.spl.(英文版附带Vim套装.)
E763的文档提到:
Vim允许您在同一文件中使用多种语言的拼写检查.您可以在'spelllang'选项中列出它们.因此,相同编码的所有拼写文件必须使用相同的单词字符,否则它们无法合并而不会出错.如果您收到单词表不同的警告,则可能需要使用:mkspell再次生成.spl文件.检查使用过的.aff文件中的FOL,LOW和UPP行.
使用"-ascii"参数生成的XX.ascii.spl拼写文件不包含带有字符的表,因此可以将拼写文件与任何编码结合使用..add.spl文件也不包含该表.
似乎我需要重新生成单词表,但这样做的步骤并不直接来自手册.我该怎么办?
我在Sphinx尝试一些相当基本的东西.我有一些图像,但我更喜欢让它们保持很小,我想让用户点击它们来获得更大的图像.我没有找到一种语法结合image:或figure:与ref:或link:.
.. image:: _static/my_image_small.png
Run Code Online (Sandbox Code Playgroud)
我在同一个文件夹中my_image_large.png.
如果您想出一个解决方案,那么较大的图像应该是一个带有显式链接的文件,还是我创建一个带有附加image:标记的reSt文件?另一种方法是使用reSt文件中的图像大小,但后来我仍然不知道如何创建从小图像到大图像的链接.
感谢你们对我的帮助.