我正在使用此代码获取窗口标题:
tell application "System Events"
set frontApp to name of first application process whose frontmost is true
end tell
tell application frontApp
set window_name to name of front window
end tell
Run Code Online (Sandbox Code Playgroud)
但是,在某些情况下,这会失败.显然,当没有打开的窗口时它会失败,但那是好的.但是,在某些情况下,例如Texmaker,它会因错误而失败.它也不适用于预览.
什么是获得窗口标题的方法,即使像Texmaker这样的情况?
Apple GCC在哪里/如何将DWARF存储在可执行文件中?
我编译了一个二进制文件gcc -gdwarf-2(Apples GCC).但是,既没有objdump -g也objdump -h没有向我显示任何调试信息.
libbfd也找不到任何调试信息.(我在binutils-mailinglist上问过这个问题.)
然而,我能够通过dsymutil(进入dSYM)提取调试信息.libbfd也可以读取那些调试信息.
在C++ 98/C++ 03中,语言中没有纯/ const函数关键字.
这在C++ 0x中有变化吗?
如果是这样,是否可以在函数对象(std::function)上设置这样的标志?所以我可以传递一些函数指针或lambda函数,并另外给出它是纯/ const函数的信息吗?被调用函数可以具有用于这种函数的优化执行路径.
有没有办法检查给定的函数是否为纯/ const?即,例如,如果上面有这样的标志std::function,我可能只是检查那个标志.但也许甚至有更普遍的方式.
如果没有改变,为什么不呢?我认为获得这样的支持可能非常有用.
关于它有任何公开的建议吗?
我认为这Iterator.copy()将是一个非常方便的功能.您可以以更好的方式实现迭代器过滤器.
例如,Googles Java Collection中filter(和类似的)函数使用的唯一原因UnmodifiableIterator(只是Iterator没有remove)是因为你不能实现这样的过滤器,Iterator否则无法在某些时候复制它.(真的,使用当前界面是不可能的;试试吧.)
另一个优点是你可以在for-each-loop中使用迭代器:因为可复制的迭代器也可以自动迭代.另见这个问题.目前,主要的设计理由不允许这样做是因为Iterator它实现Iterable并Iterator<T> iterator() { return this; }会使无效迭代器.通过使用一个copy函数,它就像它一样简单Iterator<T> iterator() { return copy(); }并且它不会使原始迭代器无效.因此,没有理由不允许这样做.
有什么缘故吗?只是为了减少实现它的复杂性?
我需要一个界面,如:
interface Function<X,Y> {
Y eval(X obj);
}
Run Code Online (Sandbox Code Playgroud)
Java中是否有这样的东西,或者我需要定义自己的东西吗?
即,我有:
root -- c1 -- c2 -- .. - c1000 -- c1001 -- c1002 -- .. -- c2000 -- top
Run Code Online (Sandbox Code Playgroud)
我希望:
root = c1000 -- c1001 -- c1002 -- .. -- c2000 -- top
Run Code Online (Sandbox Code Playgroud)
怎么样?
(我想我可以通过git filter-branch,但究竟是怎么做的?)
(当然我知道这意味着历史改写...)
我在多个地方读到Boost.Signals不是线程安全但我没有找到更多关于它的细节.这个简单的引用并没有说真的那么多.现在大多数应用程序都有线程 - 即使它们试图是单线程的,它们的一些库也可能使用线程(例如libsdl).
我想实现没有其他线程无法访问插槽的问题.所以在这个意义上它至少是线程安全的.
但到底有什么作用,哪些不行?只要我不同时访问它,它是否可以在多个线程中使用它?即如果我在插槽周围建立自己的互斥锁?
或者我被迫只在我创建它的那个线程中使用插槽?或者我第一次使用它的地方?
template<typename T1, typename T2>
class Bimap {
public:
class Data {
private:
template<typename T> Data& set(T);
template<> Data& set<T1>(typename T1 v) { /*...*/ }
};
};
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
error: explicit specialization in non-namespace scope 'class Bimap<T1, T2>::Data'
我明白错误在说什么.但为什么我不能这样做呢?我该如何解决?
我正在尝试使用deepcopy(从copy模块)深度复制模块中的节点树ast.
这似乎不起作用.我遇到了奇怪的错误,比如TypeError: required field "name" missing from FunctionDef当我使用复制的结果时(我检查了它;它在复制的节点中确实丢失了),所以它没有正确地复制它们.
有什么技巧可以使这个工作吗?或许我错过了什么?