我正在将一个非常大的存储库推送到GitHub,我收到一个错误,说该包超过了允许的最大大小:
git push
Counting objects: 2072164, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (731293/731293), done.
fatal: pack exceeds maximum allowed size2.00 GiB | 118 KiB/s
error: pack-objects died of signal 13
Run Code Online (Sandbox Code Playgroud)
有没有办法在推动时强制最大包装尺寸?我git repack --max-pack-size=1g -d -f -F -a在推之前尝试过.我也试过了git config pack.packSizeLimit 1g.还有另外一种方法吗?
我想创建一个宏来定义一个在对象列表上调用该函数的函数.它不一定必须是预处理器宏,但它应该工作.
我想写这样的东西:
CALL_ON_ALL(doSomething(int arg1, bool arg2))
Run Code Online (Sandbox Code Playgroud)
我想要它产生这个:
void doSomething(int arg1, bool arg2) {
for (int i = 0; i < delegates.size(); i++)
delegates[i]->doSomething(arg1, arg2);
}
Run Code Online (Sandbox Code Playgroud)
我有一些有用的东西:
#define CALL_ON_ALL(defSig, callSig) \
void defSig { \
for (int i = 0; i < delegates.size(); i++) \
delegates[i]->callSig; \
}
Run Code Online (Sandbox Code Playgroud)
问题是我必须分别编写定义签名和调用签名,如下所示:
CALL_ON_ALL(doSomething(int arg1, bool arg2), doSomething(arg1, arg2))
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
它不一定必须是预处理器宏.任何有效的方法都可以.
我有一个C可以转换为类的类A和一个A*作为参数的函数.我想用a调用它C*,但我似乎无法让转换构造函数工作.我明白了:error: cannot convert ‘C*’ to ‘A*’ for argument ‘1’ to ‘void doSomething(A*)’.我究竟做错了什么?
class C {
};
class A {
public:
A(C* obj) {}
};
void doSomething(A* object);
int main()
{
C* object = new C();
doSomething(object);
}
Run Code Online (Sandbox Code Playgroud)