假设我有一个本地和一个远程Mercurial存储库.现在,我开始研究一个功能.我正在努力,当我认为它完成后,我提交变更集.再测试一下,我发现我可以通过调整代码中的内容来进一步改进这个功能.我做出改变并提交.20分钟后,我发现这个新功能有一个错误,所以我修复它并提交它.
我现在有3个变更集,我真的想将其作为一个变更集推送到远程存储库,例如,消息"实现功能X".
如何在没有太多麻烦的情况下做到这一点?我相信我可以用补丁来做,但看起来很多工作.
在编写将使用Sphinx处理的RST时,我无法在引用数字时使用Sphinx LaTeX输出来使用图号.例如,这段代码:
The lemmings are attacking, as can be seen in :ref:`figlem`.
.. _figlem:
.. figure:: _static/lemming_invasion.*
They're coming!
Run Code Online (Sandbox Code Playgroud)
将转换成这个:
旅行者正在攻击,正如他们即将到来的那样!
/ image到这里/
图1.1:他们来了!
但我想要的是"标准"LaTeX引用数字的方式,如下所示:
旅鼠正在攻击,如图1.1所示
我该如何实现这一目标?我目前使用的代码是Sphinx手册推荐的代码,但它不会产生我想要的输出.
假设我有一些像这样的HTML代码:
<body contentEditable="true">
<h1>Some heading text here</h1>
<p>Some text here</p>
</body>
Run Code Online (Sandbox Code Playgroud)
现在,插入符号(闪烁的光标)在H1元素内部闪烁,让我们在单词"heading"中说.如何使用JavaScript获取插入符号元素的名称?在这里,我想得到"h1".
这只需要在WebKit中工作(它嵌入在应用程序中).它最好也适用于选择.
我在我的应用程序中嵌入了HTML Tidy来清理传入的HTML.但是Tidy有很多错误,直接在源头修复它是我最糟糕的噩梦.整洁的源代码是一种难以理解的憎恶.千行功能,可变命名,意大利面条代码等等.这真的太可怕了.
更糟糕的是,官方发展似乎已经停止.在过去的12个月里,官方的CVS回购有三笔交易.但是它已经死了并埋葬的时间比这要长得多......
所以我正在寻找一个可以做Tidy所能做的OSS C或C++应用程序/库(感觉就好):修复错误的HTML标记并将其转换为有效的XHTML(这是我感兴趣的部分).我的意思是各种糟糕的标记.
那里有类似的东西吗?
编辑:我需要它来通过XML处理工具对DOM树进行操作,并且通常符合XHTML规范.我的应用程序需要接受来自用户的HTML(通常在各种方式都无效)并输出有效的XHTML.它需要能够处理通常不会在浏览器中显示的HTML,因为用户手动编辑它并且之后没有检查.
Tidy的纠错解析器的直接替代品......不会太糟糕.我不介意错误,如果源是可读的,我可以自己修复问题,或者是否有活跃的开发人员及时提供错误修正.
我刚看到关于条件运算符的维基百科文章中的这段代码:
Vehicle new_vehicle = arg == 'B' ? bus :
arg == 'A' ? airplane :
arg == 'T' ? train :
arg == 'C' ? car :
arg == 'H' ? horse :
feet;
Run Code Online (Sandbox Code Playgroud)
我已经改变了一点代码,但想法是一样的.您会发现条件运算符的这种使用是否可以接受?它比if
- else
construct 更简洁,并且使用一个开关肯定会为bug提供一整套新的机会(任何人都会堕落).此外,if
- else
s并且switch
不能用作R值,因此您必须先创建变量,对其进行初始化,然后根据需要进行分配.
我真的很喜欢这个,但我想知道其他人的想法.
但格式化至关重要.
编辑:我还是喜欢这个.但我理解那些说" switch
声明是为此做出的"的人.好吧,也许是这样.但是如果条件是返回的函数调用bool
怎么办?或者其他一百万件你无法打开的东西.
你开关恋人真的试图说服我,一个巨大的if
- else
链比较好?是的,不知道如何使用条件运算符的程序员将无法理解这一点.他们应该学习如何使用它.这不是奥术.
几天前,我被告知g ++的最新版本比MSVC 2008产生"更好"的x86代码.基本上,具有完全优化的GCC比具有完全优化的MSVC产生更快的应用程序.
虽然说明这一点,如果是真的,这在很大程度上取决于应用程序和使用的C++代码(我正在为我的应用程序评估这个声明的过程),我想知道别人怎么想.
从本质上讲,比较这两个编译器的输出时,您的个人经历是什么?
我在询问MinGW,但如果您对香草GCC的体验在某种程度上有效,请随意分享.
我正在使用没有QWebView的QWebPage,因为我想将HTML文件的内容呈现到QPixmap/QImage上.
我希望页面的加载是同步完成的,而不是异步的,这是默认的.默认方式是调用QWebFrame::setHtml()
或QWebFrame::setContent()
,但这会异步加载图像.我想要的是某种阻塞函数调用,就像QWebFrame::waitUntilLoadFinished()
之后我可以调用render()
它并完成它.
我找不到办法做到这一点.我错过了什么吗?
我目前正在开发一个需要尽可能少的外部依赖项的C++项目,因此我非常关注STL和Boost.到目前为止,在C++方面,我几乎完全生活在Qt-land.一般来说,我倾向于使用C#和Python.
今天我想检查是否std::vector
包含某个项目.有了Qt,我会这样做:
QList< int > list;
list.append( 1 );
list.append( 2 );
list.append( 3 );
if ( list.contains( 2 ) )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
很好,可读.但std::vector
没有contains
方法,这是一个惊喜.好的...这样的STL成语是什么?搜索周围,似乎是这样的:
std::vector< int > list;
list.push_back( 1 );
list.push_back( 2 );
list.push_back( 3 );
std::vector< int >::const_iterator result =
std::find( list.begin(), list.end(), 2 );
if ( result != list.end() )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
那(对我来说)难以理解,而且太冗长了.所以我发现自己编写了一个实用函数,它接受一个向量和一个值,并bool
根据是否找到值返回.基本上,模板化的contains()
方法; 上述std::find
调用的包装器.然后,我可以以类似于Qt示例的方式使用它.
我有几个类似的实用函数,它们可以包装其他STL惯用语,而不是其他原因,但可读性增加(感知).我想知道的是......这是一个坏主意吗?其他人也这样做吗?我错过了一些关键的东西吗 代码将在某一时刻成为OSS,而我宁愿做一些其他C++开发人员会觉得奇怪的特殊事物.
我正在尝试编写一个函数,它将一个仿函数作为参数,调用仿函数,然后返回包含在一个函数中的返回值boost::shared_ptr
.
以下拒绝编译,我完全没有想法.我得到"std :: vector <std :: string>不提供调用操作符"(粗略地).我在Mac OS X上使用Clang 3.1.
template< typename T >
boost::shared_ptr< T > ReturnValueAsShared(
boost::function< T() > func )
{
return boost::make_shared< T >( func() );
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用它的上下文:
make_shared< packaged_task< boost::shared_ptr< std::vector< std::string > > > >(
bind( ReturnValueAsShared< std::vector< std::string > >,
bind( [a function that returns a std::vector< std::string >] ) ) );
Run Code Online (Sandbox Code Playgroud)
编辑:这是一个完整的独立测试用例.这段代码无法使用相同的错误进行编译,对于我的生活,我看不出有什么问题:
#include <boost/make_shared.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <string>
#include <vector>
std::vector< std::string > foo( std::string a …
Run Code Online (Sandbox Code Playgroud) 我正试图用C#进行单元测试.各种各样的人告诉我和NUnit一起去,因为它比MSTest好(显然,我不知道),并且它在我使用的ReSharper中也有很好的支持.
现在我从来没有在我的生活中写过单元测试(忍受我,我是大学生).ReSharper有这个很好的CreateUnitTests上下文菜单选项,我见过其他人(随便看看肩膀)用来取得巨大成功.右键单击一个方法,选择CreateUnitTests,然后在那里创建一个测试框架.你只需填写重要的位.
现在,当我尝试相同的时候,ReSharper希望我创建一个新的测试项目......当我让它时,它创建(我正在假设)一个MSTest项目,显然是一个MSTest测试模板.但是我已经有一个类libarary项目引用了"nunit.framework"并且有一些NUnit测试,ReSharper非常愿意运行它们.尽管如此,它只创建了MSTest测试模板,并且只在特殊的"测试项目"项目中创建.
我究竟做错了什么?我是做错了什么,还是创建了ReSharper无法实现的NUnit测试模板?我搜索了网并阅读了ReSharper和NUnit的文档,我仍然无法弄清楚这是否可能或者是什么.
如果有人能为我提供使用ReSharper + NUnit的指南,我将不胜感激.
编辑:我正在使用ReSharper 4.5和NUnit 2.5.3
编辑2:显然我是个白痴.CreateUnitTests不是ReSharper的一部分,而是Visual Studio的一部分,因此只能与MSTest一起使用.
c++ ×6
c ×2
boost ×1
c# ×1
caret ×1
changeset ×1
compression ×1
element ×1
gcc ×1
html ×1
htmltidy ×1
javascript ×1
mercurial ×1
nunit ×1
performance ×1
push ×1
qt ×1
qtwebkit ×1
readability ×1
resharper ×1
stl ×1
templates ×1
tidy ×1
unit-testing ×1
webkit ×1