小编CB *_*ley的帖子

有没有办法配置git存储库拒绝'git push -force'?

我想知道有没有办法阻止' git push --force'在存储库上(仅在主分支上)?

假设我有远程git存储库并执行:

  • ' git push'掌握''.有用.
  • ' git push --force'到'branch-1'.有用.
  • ' git push --force'掌握''.它被拒绝了.

它甚至可能吗?

感谢您的任何答案和建议.

BR,Dawid.

git

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

使用C中的按位运算符检查数字是否为非零

x使用合法运算符检查数字是否为非零值!.

例如:isNonZero(3) = 1,isNonZero(0) = 0

法律行动: ~ & ^ | + << >>

  • 注意:只应使用按位运算符.if,else,for等不能使用.
  • 编辑1:运营商数量不应超过10.
  • Edit2:考虑大小为int4个字节.

int isNonZero(int x) {
return ???;
}
Run Code Online (Sandbox Code Playgroud)

使用!它将是微不足道的,但我们如何不使用!

c bit-manipulation

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

std :: vector:vec.data()或&vec [0]

当您想要将std :: vector作为C数组访问时,您可以从至少四种不同的方式中进行选择,如本例中所示:

#include <iostream>
#include <vector>

using namespace std;

int main() {
  std::vector<int> vec;
  vec.push_back(1);
  vec.push_back(2);
  vec.push_back(42);
  vec.push_back(24024);
  {
    int* arr = vec.data();
    cout << arr << endl; /* output: 0x9bca028 */
    cout << arr[3] << endl; /* output : 24024 */
  }
  {
    int* arr = &vec.front();
    cout << arr << endl; /* output: 0x9bca028 */
    cout << arr[3] << endl; /* output : 24024 */
  }
  {
    int* arr = &vec[0];
    cout << arr << endl; /* …
Run Code Online (Sandbox Code Playgroud)

c++ arrays vector

24
推荐指数
3
解决办法
9918
查看次数

是按位还是保证评估排序?

说我有这个代码:

unsigned int func1();
unsigned int func2();
unsigned int func3();

unsigned int x = func1() | func2() | func3();
Run Code Online (Sandbox Code Playgroud)

C++是否保证首先调用func1(),然后调用func2(),然后调用func3()?

或者是否允许编译器以任何顺序调用函数?

此外,编译器是否允许在此处实现短路优化?(例如,如果func1()返回〜0,编译器是否可以决定不打扰调用func2()或func3(),因为它知道它们的返回值不可能影响分配给x的值?)

c++ operator-precedence short-circuiting bitwise-or

15
推荐指数
2
解决办法
722
查看次数

缩进Bash脚本输出

我试图编写一个bash脚本,我很难使输出看起来整洁有序.我可以使用换行符,但我宁愿让输出易于阅读.例如,当我运行时git clone ...,我想首先回显"克隆存储库",然后输出git缩进.示例输出:

Cloning repository...
    Initialized empty Git repository in /root/client_scripts/jojo/.git/
    remote: Counting objects: 130, done.
    remote: Compressing objects: 100% (121/121), done.
    remote: Total 130 (delta 13), reused 113 (delta 6)
    Receiving objects: 100% (130/130), 176.07 KiB, done.
    Resolving deltas: 100% (13/13), done.
Run Code Online (Sandbox Code Playgroud)

目前,它都是压缩而没有缩进.有谁知道如何做到这一点?我尝试过sed,awk但它似乎没有显示任何更多的输出而不仅仅是Initialized empty Git repository in /root/client_scripts/jojo/.git/.我非常感谢任何评论.

git bash scripting indentation

14
推荐指数
4
解决办法
9675
查看次数

简单的Flex/Bison C++

我已经找到了答案,但我没有得到任何快速回复的简单例子.

我想使用g ++编译flex/bison扫描器+解析器,因为我想使用C++类来创建AST和类似的东西.

通过互联网搜索我发现了一些漏洞,所有人都说只需要在lex文件中使用extern"C"来声明一些函数原型.

所以我的shady.y文件是

%{
#include <stdio.h>
#include "opcodes.h"
#include "utils.h"

void yyerror(const char *s)
{
    fprintf(stderr, "error: %s\n", s);
}

int counter = 0;

extern "C"
{
        int yyparse(void);
        int yylex(void);  
        int yywrap()
        {
                return 1;
        }

}

%}

%token INTEGER FLOAT
%token T_SEMICOL T_COMMA T_LPAR T_RPAR T_GRID T_LSPAR T_RSPAR
%token EOL

%token T_MOV T_NOP


%% 

... GRAMMAR OMITTED ...

%%

main(int argc, char **argv)
{
    yyparse();
}
Run Code Online (Sandbox Code Playgroud)

而shady.l文件是

%{
    #include "shady.tab.h"
%}

%%

"MOV"|"mov" { return T_MOV; …
Run Code Online (Sandbox Code Playgroud)

c++ yacc lex bison

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

汇编语言:尝试理解一个小函数

对于我的工作,我需要反转这部分代码(ARM9)正在做的事情.我是一个java开发人员,我真的不明白这部分与单个函数相关的代码.

当然我正在寻求帮助,因为原始代码不是更多可用.任何人都可以帮助我知道这个代码在任何高级语言中使用小算法做了什么?这会很好.我已经尝试了很多个小时没有结果.

sub_FFFF7B38
    PUSH    {LR}
    ADDS    R2, R0, #0
    LDRB    R3, [R2]
    CMP     R3, #0
    BEQ     loc_FFFF7B52
    SUBS    R1, #1
    BCC     loc_FFFF7B52

loc_FFFF7B46:
    ADDS    R0, #1
    LDRB    R3, [R0]
    CMP     R3, #0
    BEQ     loc_FFFF7B52
    SUBS    R1, #1
    BCS     loc_FFFF7B46

loc_FFFF7B52:
    SUBS    R0, R0, R2
    POP     {R1}
Run Code Online (Sandbox Code Playgroud)

assembly arm

12
推荐指数
2
解决办法
4132
查看次数

构造函数不返回可用对象

我有一个构造函数的问题,它没有像我期望的那样工作.

如果我尝试像这样初始化我的类,它将工作,我得到一个可用的对象:

vector<float> v;
MyClass<2> a(v);
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试构建类似下面的类(应该是等效的),结果是非常意外的.编译或运行程序时没有错误消息/警告.但是如果你尝试在某处使用这个变量并调用它的方法(例如a.doSomething()),它就会崩溃.

我在构造函数中放了一些代码来通知我它是否被使用.事实证明,在这种情况下,构造函数中没有实际执行的代码.

MyClass<2> a(vector<float>());
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么会这样?第二次申报是非法的吗?

编辑:我将发布一些类的代码

template <int x>
class MyClass {
public:
    vector<float> v;
    MyClass<x>(vector<float> v1) {
      v = v1;
    }

};
Run Code Online (Sandbox Code Playgroud)

c++ most-vexing-parse

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

错误:未在此范围内声明'itoa'

我收到以下错误:
prog.cpp:在成员函数'void Sequence :: GetSequence()':
prog.cpp:45:错误:'itoa'未在此范围内声明

我有包含cstdlib头文件,但它无法正常工作.

#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <functional>
using namespace std;

template<typename T>
struct predicate :
public binary_function<T, T, bool>
{
    bool operator() (const T& l,const T &r) const
    {
          return l < r;
    }
};

class Sequence
{
    public:
    Sequence(vector<string> &v)
    { /* trimmed */ }

void GetSequence(void)
{
    string indices = "";
    char buf[16];

    for( map<int, string>::iterator
            i = m.begin(); i != m.end(); ++i )
    {
indices …
Run Code Online (Sandbox Code Playgroud)

c++

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

从int**转换为const int**

为什么我会加入这段代码:

void foo ( const int ** );

int main() {
    int ** v = new int * [10];
    foo(v);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个错误:

invalid conversion from ‘int**’ to ‘const int**’ [-fpermissive]|
Run Code Online (Sandbox Code Playgroud)

我认为可以从非const转换为const.

c++ pointers

8
推荐指数
2
解决办法
5935
查看次数