假设我在分支"master"中有一个文件"ChangeLog".我想记录有关此文件中任何分支的所有更改的信息(比提交消息和其他描述性信息更详细).
我git checkout -b revA,执行编辑,更新ChangeLog和git commit.
然后我git checkout -b master.此结帐将使用分支"master"中的版本替换ChangeLog.
我想要的是ChangeLog自动成为最近修改过的版本,无论我检查哪个分支.我不想手动合并(或者,很可能,忘记合并)ChangeLog从其他分支到我当前的分支.
我还没有发现任何似乎允许这样的东西.是否有可能做到这一点?
autoconf与shared_ptrTR1/BOOST C++ 0x模板一起使用的最佳实践是什么,以便最大限度地提高可移植性和可维护性?
随着autoconf我能确定是否shared_ptr可以作为std::tr1::shared_ptr和/或boost::shared_ptr.鉴于相同的功能有两个不同的名称,我有以下问题:
shared_ptr引用? std::tr1::shared_ptr首选boost::shared_ptr吗?对于第一个,代码当前正在使用预处理器条件,允许非限定引用shared_ptr,la
#if HAVE_STD_TR1_SHARED_PTR
using std::tr1::shared_ptr;
#elif HAVE_BOOST_SHARED_PTR
using boost::shared_ptr;
#else
#error "No definition for shared_ptr found"
#endif
Run Code Online (Sandbox Code Playgroud)
其次,代码使用std::tr1::over boost::来最小化对外部库的依赖性(即使库被广泛使用).
这两种解决方案是否常见?还有更好的吗?
在阅读Karlsson的超越C++标准时,作者在类reference_counted的主体中定义了朋友函数intrusive_ptr_add_ref(参见第36页).在适当的时间使用Argument Dependent Lookup自动调用该函数.
从来没有看过在类的主体中定义的友元函数,我玩过并发现如果不使用ADL查找,gcc 4.4.3需要前向声明.实际上,如果没有前向声明,似乎没有办法引用adl_no.这是C++标准的一部分还是gcc的神器?(我没有Windows框所以不能尝试VC).
#include <cstdlib>
#include <iostream>
namespace {
void adl_no(); // Remove this and it won't compile with gcc
struct Q {
friend void adl_yes(const Q&) {
std::cout << "adl_yes" << std::endl;
}
friend void adl_no() {
std::cout << "adl_NO" << std::endl;
}
};
}
int main(int argc, char** argv)
{
adl_yes(Q());
adl_no();
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)