小编Fab*_*ica的帖子

如何在同一分支上的两个不同提交之间区分相同的文件?

在Git中,我如何比较同一分支(例如master)上两个不同提交(不连续)之间的相同文件?

我正在搜索Visual SourceSafe(VSS)或Team Foundation Server(TFS)中的比较功能.Git有可能吗?

git git-diff

1077
推荐指数
11
解决办法
73万
查看次数

添加Git子模块时如何指定分支/标记?

git submodule add -b工作怎么样?

添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示"当前不在任何分支上").

我无法找到任何信息.gitmodules.git/config关于子模块的分支或任何具体的承诺,那么,如何Git的数字出来?

此外,是否可以指定标签而不是分支?

我正在使用1.6.5.2版.

git git-submodules

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

什么是std :: move(),什么时候应该使用?

  1. 它是什么?
  2. 它有什么作用?
  3. 什么时候应该使用?

赞赏良好的链接.

c++ c++-faq move-semantics c++11 stdmove

581
推荐指数
6
解决办法
24万
查看次数

std :: function和std :: bind:它们是什么时候应该使用它们?

我知道什么是仿函数以及何时将它们与stl algos一起使用.但不明白他在这个主题中的意思:

C++ 11FAQ

任何人都可以解释什么是什么std,什么std::bind时候应该使用,新手的一些例子?

c++ stdbind c++11 std-function

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

Bash变量范围

请解释为什么最后一个"回声"声明是空白的?我希望它在while循环中增加到值1:

#!/bin/bash
OUTPUT="name1 ip ip status" # normally output of another command with multi line output

if [ -z "$OUTPUT" ]
then
        echo "Status WARN: No messages from SMcli"
        exit $STATE_WARNING
else
        echo "$OUTPUT"|while read NAME IP1 IP2 STATUS
        do
                if [ "$STATUS" != "Optimal" ]
                then
                        echo "CRIT: $NAME - $STATUS"
                        echo $((++XCODE))
                else
                        echo "OK: $NAME - $STATUS"
                fi
        done
fi

echo $XCODE
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下语句而不是++ XCODE方法

XCODE=`expr $XCODE + 1`
Run Code Online (Sandbox Code Playgroud)

它也不会在while语句之外打印.我想我在这里缺少一些关于变量范围的东西,但是ol'手册页并没有显示给我.

bash scope pipe

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

哪个更有效:返回值与通过引用传递?

我目前正在研究如何编写高效的C++代码,在函数调用方面,我想到了一个问题.比较这个伪代码功能:

not-void function-name () {
    do-something
    return value;
}
int main () {
    ...
    arg = function-name();
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用其他相同的伪代码功能:

void function-name (not-void& arg) {
    do-something
    arg = value;
}
int main () {
    ...
    function-name(arg);
    ...
}
Run Code Online (Sandbox Code Playgroud)

哪个版本更有效,以及在什么方面(时间,内存等)?如果它取决于,那么第一个什么时候会更有效率,什么时候第二个会更高效?

编辑:对于上下文,此问题仅限于与硬件平台无关的差异,并且大多数情况下也是软件.是否有任何与机器无关的性能差异?

编辑:我不知道这是一个重复.另一个问题是将参考传递(上游代码)与传递值(下图)进行比较:

not-void function-name (not-void arg)
Run Code Online (Sandbox Code Playgroud)

这跟我的问题不一样.我的重点不在于将参数传递给函数的更好方法.我关注的是这是更好的方式来传递一个结果来自外部范围的变量.

c++ performance function return-value pass-by-reference

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

pid_t(和类似的类型) - 为什么,为什么?

调用背后的逻辑是什么,比如getpid()返回类型的值pid_t而不是unsigned int?还是int?这有什么用?

我猜这与便携性有关?保证pid_t在不同平台上的尺寸相同,可能有不同尺寸int的等等?

c pid type-equivalence

48
推荐指数
4
解决办法
5万
查看次数

C++中的默认参数成本

我偶然发现了Scott Meyers的" 嵌入式环境中的有效C++"中的一个例子,其中描述了两种使用默认参数的方法:一种被描述为昂贵而另一种被描述为更好的选择.

我错过了为什么第一个选项可能比另一个更昂贵的解释.

void doThat(const std::string& name = "Unnamed"); // Bad

const std::string defaultName = "Unnamed";
void doThat(const std::string& name = defaultName); // Better
Run Code Online (Sandbox Code Playgroud)

c++ performance default-parameters

48
推荐指数
2
解决办法
4157
查看次数

三元运算符为什么以及何时返回左值?

很长一段时间以来,我认为三元运算符总是返回一个右值.但令我惊讶的是,事实并非如此.在下面的代码中,我没有看到返回值foo和三元运算符的返回值之间的区别.

#include <iostream>
int g = 20 ;

int foo()
{
    return g ;
}

int main()
{
    int i= 2,j =10 ;

    foo()=10 ; // not Ok 
    ((i < 3) ? i : j) = 7; //Ok
    std::cout << i <<","<<j << "," <<g << std::endl ;
}
Run Code Online (Sandbox Code Playgroud)

c++ rvalue conditional-operator lvalue

39
推荐指数
2
解决办法
2747
查看次数

通过非常量引用参数修改常量引用参数

考虑以下代码:

#include <iostream>

void f(int const& a, int& b)
{
  b = a+1;
}

int main() {
  int c=2;
  f(c,c);
  std::cout << c << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
  • 函数f采用两个引用参数:int const& aint& b。因此,f不应该修改a,但它可以修改b,并且确实可以。
  • 但是,在 中main,我传递了相同的变量,同时引用bya和 by b。作为f修改b,它也修改a,它应该不应该

此代码在没有任何警告的情况下编译并打印3。如果我们单独跟踪每个变量,它看起来像常量-正确性推崇:c是非const,因此它是完全没有把它作为一个const参考的a,也可作为一个非const REF为b,和体内f我们modify b,这是非常量,而不是 touching …

c++ const-correctness pass-by-reference pass-by-const-reference

34
推荐指数
2
解决办法
1625
查看次数