小编bit*_*ask的帖子

我可以影响应用的Git藏匿时所使用的"递归"合并策略?

我有一组生活在git存储槽中的调试实用程序; 我正在分支机构之间移动,这些分支机构之间的差异很小.我git stash apply在相应分支上的顶部存储来测试功能.

但是我在其中一个分支中遇到了合适的合并冲突,但是我想更喜欢藏匿中的内容,所以我希望合并策略"递归"更喜欢来自藏匿的版本(我这就是"他们的",参见man git-merge章节MERGE-STRATEGIES,小节" recursive.

我可以以某种方式告诉使用git stash apply什么合并策略?

git merge branch git-stash

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

如何在两个中删除一个git存储库?

我有一个git存储库,它有几个提交到不同的子目录,我想以下面的方式将存储库切成两个:

/
  sub1/
  sub2/
  sub3/
Run Code Online (Sandbox Code Playgroud)

->

/
  sub1/
Run Code Online (Sandbox Code Playgroud)

个别潜艇已发展到sub1应该是独立存储库的地步.此外,没有一个提交触及多个子.

因此,我想以某种方式提取一个新的存储库,该存储库只接受提交,sub1同时保留所有其他内容.但我想保留历史记录(但没有相关的提交sub2也没有sub3).

注意:我依稀记得有一些命令可以做到这一点,但我自己从未使用它,也不记得它被称为什么,所以我无法搜索它.

git

5
推荐指数
0
解决办法
103
查看次数

令人高兴地连接不兼容的类型会导致混乱

我一直试图找出一些边界g++,特别是链接(C++)目标文件.我发现以下好奇心,我试着尽可能多地压缩,然后再询问.

文件 common.h

#ifndef _COMMON_H
#define _COMMON_H

#include <iostream>

#define TMPL_Y(name,T) \
struct Y { \
  T y; \
  void f() { \
    std::cout << name << "::f " << y << std::endl; \
  } \
  virtual void vf() { \
    std::cout << name << "::vf " << y << std::endl; \
  } \
  Y() { \
    std::cout << name << " ctor" << std::endl; \
  } \
  ~Y() { \
    std::cout << name << " dtor" …
Run Code Online (Sandbox Code Playgroud)

c++ linker compiler-bug

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

如何使g ++拒绝任何展示未定义行为的代码?

我想CXXFLAG在我的构建系统中添加一个强制整个代码库的定义.因此,编译器应拒绝以静态方式展示未定义行为的每一段代码.

例如reinterpret_cast<A*>(someIntPtr)->aMember,没有任何运行时上下文未定义(a),而int i = bar(); i /= i;可能导致未定义的行为(b)取决于运行时评估bar()(可能返回零).
我只希望抓住(a)案件,而不一定是(b)案件.

c++ gcc standards-compliance

4
推荐指数
2
解决办法
207
查看次数

指针地址如何在c ++中工作

我对指向变量地址的指针很困惑 图片

它指向最后两个字节这是如何工作的

#include <iostream>
using namespace std;

int main()
{
    int i = 1;
    short *j  = (short*)&i;
    cout << *j << endl;
}
Run Code Online (Sandbox Code Playgroud)

.

c++ implementation pointers casting addressing

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

xpath:number为"0"返回false

我有一个xsl:variable可以是空字符串或数字.所以我评估它是这样的:

<xsl:if test="number($var)"><node att="{number($var)}" /></xsl:if>
Run Code Online (Sandbox Code Playgroud)

这是有效的,如果var是空字符串,但它具有相同的效果,如果var0:

从-2到2:

<node att="-2" />
<node att="-1" />
<node att="1" />
<node att="2" />
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?是否有不同版本的number功能也可以捕获0?我真的要加上or $var = '0'我的test陈述吗?

xslt xpath numbers xslt-1.0

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

如何获取析构函数的成员函数指针?

假设我有

struct X {
  ~X() {}
};
Run Code Online (Sandbox Code Playgroud)

X::~X()在C++ 03中获取成员函数指针的类型是什么?

我不想实际调用它,只是在SFINAE中使用来确定是否存在给定类型的析构函数.

c++ destructor member-function-pointers c++03

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

尽管切片,为什么static_cast仍然可以使用空指针?

如果我们使用多重继承,切片将使父对象的地址与地址到叶对象不同:

struct X {int x};
struct Y {int y};
struct Z : X, Y {int z};
Run Code Online (Sandbox Code Playgroud)

因此,如果我们有一个Z对象z,它的地址&zY其父对象的地址重合:static_cast<Y*>(&z)高出四个字节&z.

好处static_cast是,它是静态的,因此不会占用运行时间(相比之下dynamic_cast).但是,如果我们有一个Z*指向的内容0,那么每次转换为父级都应该并且确实产生一个空指针.为什么这样做以及如何实施?这是否意味着每一个都static_cast引入了分支指令?

c++ null casting static-cast object-slicing

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

如何设置docker进程的负面效果?

我在docker映像中有一个代码测试环境,可以通过在容器中运行bash来使用它:

me@host$ docker run -ti myimage bash
Run Code Online (Sandbox Code Playgroud)

在容器内,我通常会说一个启动程序

root@docker# ./myprogram
Run Code Online (Sandbox Code Playgroud)

但是,我希望myprogram的过程具有负面影响(有充分的理由)。然而:

root@docker# nice -n -7 ./myprogram
nice: cannot set niceness: Permission denied
Run Code Online (Sandbox Code Playgroud)

鉴于docker是由docker守护进程运行的,该守护进程以root身份运行,而我是root容器内的人,为什么这不起作用,又怎么能造成负面影响呢?

注意:docker镜像正在运行debian / sid,主机是ubuntu / 12.04。

privileges nice docker

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

为什么 std::array&lt;T,N&gt;::begin() 自 C++17 以来是 constexpr?

从 C++17 开始,std::array<T,N>::begin()是 constexpr:

constexpr iterator begin() noexcept;
Run Code Online (Sandbox Code Playgroud)

但是如何begin在编译时知道返回值呢?例如:

int main() {
  auto p = std::make_unique<std::array<int,2>>();
  auto it = p->begin();
}
Run Code Online (Sandbox Code Playgroud)

是完全合法的代码(虽然可能有点无用)。底层数组的开始以及迭代器取决于 malloc 的地址。

我有一种感觉,我对什么是误解,constexpr因为我看不到任何非静态成员函数可能是什么constexpr,特别是如果它(可传递地)访问数据成员。

c++ compile-time constexpr c++17

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