我在大约10个目录中有大约500个文件的源代码.我需要重构目录结构 - 这包括更改目录层次结构或重命名某些目录.
我正在使用svn版本控制.重构有两种方法:一种保留svn历史(使用svn move命令),另一种不保留.我认为使用eclipse CDT和SVN插件重构保留svn历史要容易得多(visual studio根本不适合目录重构).
但是现在由于代码没有发布,我们可以选择不保存历史记录.
仍然存在更改头文件的include指令的任务,无论它们包含在哪里.我正在考虑使用python编写一个小脚本 - 接收从当前文件名到新文件名的映射,并在需要的地方进行重命名(使用像sed这样的东西).有没有人做过这种目录重构?你知道好的相关工具吗?
在使用JDK 1.6编译时,是否可以选择构建在JRE 1.5上运行的Java代码?
PS:我是Java新手.
大多数编译器已经支持C++ 0x.你开始使用C++ 0x还是在等待x的定义?我必须对我的代码进行一些重构; 我应该开始使用新功能吗?
我想返回两个值,其中一个是一个新对象.我可以这样做std::pair:
class A {
//...
};
std::pair<A*, int> getA()
{
A* a = new A;
//...
}
Run Code Online (Sandbox Code Playgroud)
为了使代码异常安全,我想做:
std::pair<std::auto_ptr<A>, int> getA()
{
std::auto_ptr<A> a(new A);
//...
}
Run Code Online (Sandbox Code Playgroud)
但是这不会编译,因为在auto_ptr不修改被复制的情况下无法auto_ptr复制.好吧,这意味着auto_ptr不像其他类型那样构成(再一次).在这种情况下返回新对象的好方法是什么?
一种选择是返回a shared_ptr而另一种是inout引用.但我正在寻找其他替代方案.我可以这样做:
class AGetter
{
void getAExecute()
{
//...
// set a_ and i_
}
std::auto_ptr<A> getA() const
{
return a_.release();
}
int getInt() const
{
return i_;
}
private:
std::auto_ptr<A> a_;
int i_;
};
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
构建基类接口的理由很充分,所有虚函数都是私有或受保护的(参见本文).但是,如何防止派生类(可能在外部客户端手中)使私有虚函数成为公共?在Virtually Yours中,作者谈到了这个问题,但没有讨论解决方案.
编辑:从您的答案和我之前的想法,似乎没有办法阻止这一点.但是因为在这种情况下,很容易出错(客户端肯定会触及受保护的虚函数),编译器会警告这种用法是有意义的.我试着用g ++测试它.首先,我写道:
class A {
protected:
virtual void none() { return; }
};
class B: public A {
public:
void none() { return; }
};
Run Code Online (Sandbox Code Playgroud)
g++ -c -Wall -pedantic file.cpp编译没有错误.添加-Weffc++发出警告:warning: ‘class A’ has virtual functions and accessible non-virtual destructor这是有道理的.添加虚拟析构函数后,没有警告.因此,这个容易出错的案例没有任何警告.
来自维基百科有关BDD的文章:
BDD是第二代,从外到内,基于拉动,多利益相关方,多规模,高自动化,敏捷的方法.它描述了与明确定义的输出相互作用的循环,从而提供了重要的可运行的,经过测试的软件.
即使在通过引用的演示文稿之后,我也无法理解所使用的形容词,例如"从外到内","基于拉"和"多尺度" .请帮忙解释一下.
我无法弄清楚如何删除默认的图标并将其替换为 Remix 中的自定义图标。在网页中,默认的图标被替换,但是当我在不同的选项卡中从我的网站打开媒体文件时,比如说我的网站上托管的图像或 PDF 文件,在这种情况下,会出现 Remix 的默认图标。
您可以在上面的屏幕截图中看到。在普通网页中,我的自定义图标工作正常。我是这样实现的 -
export function links() {
return [
{
rel: 'apple-touch-icon',
sizes: '180x180',
href: '/favicon/apple-touch-icon.png',
},
{
rel: 'icon',
type: 'image/png',
sizes: '32x32',
href: '/favicon/favicon-32x32.png',
},
{
rel: 'icon',
type: 'image/png',
sizes: '16x16',
href: '/favicon/favicon-16x16.png',
},
{
rel: 'icon',
type: 'image/x-icon',
href: '/favicon/favicon.ico',
},
{ rel: 'manifest', href: '/favicon/site.webmanifest' },
{
rel: 'mask-icon',
href: '/favicon/safari-pinned-tab.svg',
color: '#5bbad5',
},
]
}
Run Code Online (Sandbox Code Playgroud)
但对于托管媒体文件来说,这不起作用。任何帮助将不胜感激,谢谢:)
我的C++项目越来越大.我们现在也开始使用cmake进行构建.我想将应用程序划分为库,以便它们可以链接进行测试,准备应用程序包等.现在我将我的代码分成如下库:
另一种方法是根据目录结构进行划分 - 每个目录有一个库.但是从我过去的经验来看,它导致了太多的库,然后在链接期间难以处理库依赖性.
这方面有什么最佳做法吗?
我需要将mediawiki转换为LaTeX语法.公式应保持不变,但我需要转换,例如= something = into\chapter {something}.
虽然这可以通过一些sed获得,但是逐项环境会让事情变得有点脏,所以我想知道是否可以生成更好的解决方案.什么对这项任务有用?
c++ ×6
auto-ptr ×1
bdd ×1
c++11 ×1
favicon ×1
java ×1
java-5 ×1
java-6 ×1
javascript ×1
latex ×1
mediawiki ×1
overriding ×1
reactjs ×1
real-time ×1
refactoring ×1
remix.run ×1
terminology ×1
virtual ×1