我知道您可以通过以下方式关闭Mercurial分支:
hg update rev-number
hg commit --close-branch -m "Closing branch."
Run Code Online (Sandbox Code Playgroud)
但是,我使用的一些存储库相当大,并且在发现多年前我想要关闭的松散分支之后,首先更新它可能需要几分钟(如果不是几小时),只做一次提交然后更新回到我原来的修订版(更多分钟,如果不是几小时).
所以我的问题是,有没有办法关闭Mercurial分支而不首先将工作目录更新到分支修订版?
在过去的几天里,我一直在调试一个涉及C++中lambdas的奇怪问题.我已将问题减少到以下症状:
this
指针被破坏拉姆达内(注:this
总是被复制捕获,因此拉姆达应该得到自己的this
指针,它指向的App
对象)std::cout
print语句时发生,并在创建lambda之前调用.print语句看似完全不相关(例如print"Hello!").printf()
也表现出相同的行为.x86
体系结构编译器编译并运行良好(参见示例).App
对象内保存指向它的指针),则不会发生错误.-O0
标志),则不会发生错误.它在优化设置为时发生-O2
.以下是我能想出的最简单,可编译的代码示例,它会导致问题.
#include <iostream>
#include <functional>
class App {
public:
std::function<void*()> test_;
void Run() {
// Enable this line, ERROR is printed
// Disable this line, app runs o.k.
std::cout << "This print statement causes the bug below!" << std::endl;
test_ = [this] () …
Run Code Online (Sandbox Code Playgroud) 我经常使用类似对象的预处理器宏作为C代码中的布尔标志来打开和关闭代码段.
例如
#define DEBUG_PRINT 1
Run Code Online (Sandbox Code Playgroud)
然后像使用它一样
#if(DEBUG_PRINT == 1)
printf("%s", "Testing");
#endif
Run Code Online (Sandbox Code Playgroud)
但是,如果包含该头文件的头文件#define
忘记包含在源代码中,则会出现问题.由于未声明宏,因此预处理器将其视为等于0,并且#if
语句永远不会运行.
当忘记包含头文件时,可能发生非期望的,不守规矩的行为.
理想情况下,我希望能够检查宏是否已定义,并在一行中检查它是否等于某个值.如果未定义,则预处理器会抛出错误(或警告).
我正在寻找以下内容:
#if-def-and-true-else-throw-error(DEBUG_PRINT)
...
#endif
Run Code Online (Sandbox Code Playgroud)
这就像一个组合#ifdef
和#if
,如果它不存在,使用#error
.
我已经探索了一些途径,但是,预处理器指令不能在#define
块内使用,据我所知,如果在#if
语句中使用宏时没有定义宏,则没有预处理器选项来抛出错误/警告.
我知道MahApps地铁主题带有"主题"(颜色集),但我不知道如何从我的WPF应用程序中的默认设置更改它们.
我已经按照MahApps.Metro文档中的初学者教程(包括在页面顶部添加资源库),但没有提及更改主题.
组件/风格/ Colours.xaml文件具有"从国际化的主题包",这可能是一个有用的线索,有人在WPF设计比我好熟悉的注释.
我说的是应用程序范围内的主题更改,而不是单个控件.
是否有任何标准方法将(任意)方程转换为位移操作?
我的意思是将任何不是+或 - 的东西转换成位移,所以结束方程只包含操作数<<,>>,+和 -.这样做有利于减少处理器密集度.
显然,这些结果方程只是近似值,在考虑更多订单(一阶,二阶等)时提供更好的准确性.
我已经在网上搜索了关于此的任何信息,但找不到任何信息,除了特定公式(sin,cos,inv等)的东西.
我想象的是多项式或泰勒的扩展过程,然后将其转换为位移操作.
我有一个基于GUI react/redux的应用程序.作为视图的一部分,有一个"指示器"反应组件,我希望闪烁,并且使用CSS3动画(动画帧)完成闪烁.indicator.blink()
调用react组件的成员函数使指示器闪烁(它基本上从DOM元素中删除了blink类,然后在1ms后再次添加它,作为一个黑客来解决没有"重启"api的事实一个CSS3动画).
在redux框架中发生某些操作(如果需要,它们可以是thunks),我希望blink()
在react视图中调用此函数.怎么做到最好?
让redux动作修改app状态是不对的,然后指示元素将其中一个状态变量绑定为a prop
,因为它不是一个状态,而是一个瞬时事件.但我知道没有其他方法可以通过redux动作来改变反应组件.
我正在为嵌入式系统(特别是PSoC 5,使用PSoC Creator)开发代码,并使用C++编写代码.
虽然我已经克服了使用C++的大多数障碍,但首先使用编译器标志在C++中进行编译-x c++
,定义new和delete运算符,确保编译器标志不会抛出异常,-fno-exception
当它出现时我会遇到问题.来使用虚拟功能.
如果我尝试声明一个虚函数,编译器会给我错误undefined reference to "vtable for __cxxabiv1::__class_type_info"
.解决这个问题的唯一方法是使用编译器标志-fno-rtti
,它可以防止错误并使其成功编译.但是,如果我这样做,嵌入式程序在尝试运行重载的虚函数时会崩溃,我认为这是因为vtable不存在.
我不明白为什么你不能在嵌入式平台上实现vtables,因为它只是在成员对象之前或之后的内存中的额外空间(取决于确切的编译器).
我试图使用虚函数的原因是因为我想使用FreeRTOS操作系统与C++和其他人都使用虚拟功能(参见实施这个http://www.freertos.org/FreeRTOS_Support_Forum_Archive/July_2010/freertos_Is_it_possible_create_freertos_task_in_c_3778071.html为讨论,以及https://github.com/yuriykulikov/Event-driven_Framework_for_Embedded_Systems,用于编写良好的嵌入式C++ FreeRTOS框架)
我正在尝试使用Javascript在表中间添加一个新表行,其中新表行是其中一个现有行的副本。
在stackoverflow上有很多与此类似的问题,但是似乎没有一个问题可以帮助我解决这个问题。
function AddRow()
{
var mainTable = document.getElementById('mainTable');
mainTable.insertBefore(
mainTable.rows[0].cloneNode(true),
mainTable.rows.childNodes[2]);
}
Run Code Online (Sandbox Code Playgroud)
我知道问题出在传递给insertBefore()的最后一个变量中,就像我将其保留为空白时,代码可以正确执行,并将克隆的第一行插入表的末尾(如果没有第二个参数,它的行为就像 appendRow().
我收到错误“无法读取未定义的属性2”,我猜这意味着它没有将mainTable.rows.childNodes识别为要索引的有效对象。
我还尝试了以下方法,并在测试它时遇到了更加难以捉摸的错误“ NotFoundError:DOM Exception 8”
function AddRow()
{
var mainTable = document.getElementById('mainTable');
mainTable.insertBefore(
mainTable.rows[0].cloneNode(true),
mainTable.rows[2]);
}
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,它mainTable.appendChild(mainTable.rows[0].cloneNode(true))
工作正常!问题是我不想将其添加到表的末尾。
我对标准 C 库提供的 FILE 函数系列很陌生。
我最近fopen()
在研究了如何使用后偶然发现了类似的功能stdout
,stdin
并stderr
与printf()
.
我想知道,fopen()
在嵌入式系统(不一定有操作系统支持)上需要使用什么。在阅读更多关于它的信息后,在更强大的嵌入式系统上做一个很酷的事情来挂钩说,一个 UART/SPI 接口,这样调用printf()
就会从 UART 打印数据。同样,您可以通过调用从 UART 缓冲区读取数据scanf()
。
这也将增加便携性!(例如为 Linux 编写的代码,如果printf()
支持的话会更容易移植)。如果文件在生产环境中运行,您还可以将调试数据打印到文件中,然后再从中读取。
你能fopen()
在一个简单的嵌入式系统上使用吗?如果是这样,那么谁/何地/何时创建了“文件”(就我现在而言,文件fopen()
没有malloc()
空间,也没有指定多少)?或者您是否需要支持 FAT 文件的操作系统。如果是这样,像http://ultra-embedded.com/?fat_filelib这样的东西会起作用吗?使用 FreeRTOS 会有帮助吗?