小编Alb*_*ert的帖子

MacOSX:获得最重要的窗口标题

我正在使用此代码获取窗口标题:

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这样的情况?

macos applescript

11
推荐指数
2
解决办法
2万
查看次数

Apples GCC在哪里/如何将DWARF存储在可执行文件中

Apple GCC在哪里/如何将DWARF存储在可执行文件中?

我编译了一个二进制文件gcc -gdwarf-2(Apples GCC).但是,既没有objdump -gobjdump -h没有向我显示任何调试信息.

libbfd也找不到任何调试信息.(我在binutils-mailinglist上问过这个问题.)

然而,我能够通过dsymutil(进入dSYM)提取调试信息.libbfd也可以读取那些调试信息.

macos gcc objdump dwarf dsymutil

11
推荐指数
1
解决办法
5462
查看次数

C++ 0x中的pure/const函数

在C++ 98/C++ 03中,语言中没有纯/ const函数关键字.

  1. 这在C++ 0x中有变化吗?

  2. 如果是这样,是否可以在函数对象(std::function)上设置这样的标志?所以我可以传递一些函数指针或lambda函数,并另外给出它是纯/ const函数的信息吗?被调用函数可以具有用于这种函数的优化执行路径.

  3. 有没有办法检查给定的函数是否为纯/ const?即,例如,如果上面有这样的标志std::function,我可能只是检查那个标志.但也许甚至有更普遍的方式.

如果没有改变,为什么不呢?我认为获得这样的支持可能非常有用.

关于它有任何公开的建议吗?

c++ functional-programming c++11

10
推荐指数
2
解决办法
1569
查看次数

Java:为什么迭代器不可复制

我认为这Iterator.copy()将是一个非常方便的功能.您可以以更好的方式实现迭代器过滤器.

例如,Googles Java Collection中filter(和类似的)函数使用的唯一原因UnmodifiableIterator(只是Iterator没有remove)是因为你不能实现这样的过滤器,Iterator否则无法在某些时候复制它.(真的,使用当前界面是不可能的;试试吧.)

另一个优点是你可以在for-each-loop中使用迭代器:因为可复制的迭代器也可以自动迭代.另见这个问题.目前,主要的设计理由不允许这样做是因为Iterator它实现IterableIterator<T> iterator() { return this; }会使无效迭代器.通过使用一个copy函数,它就像它一样简单Iterator<T> iterator() { return copy(); }并且它不会使原始迭代器无效.因此,没有理由不允许这样做.

有什么缘故吗?只是为了减少实现它的复杂性?

java iterator iterable copy

10
推荐指数
2
解决办法
7992
查看次数

Java:通用函数X-> Y接口

我需要一个界面,如:

interface Function<X,Y> {
    Y eval(X obj);
}
Run Code Online (Sandbox Code Playgroud)

Java中是否有这样的东西,或者我需要定义自己的东西吗?

java interface function

10
推荐指数
3
解决办法
5300
查看次数

Python:midi到音频流

我需要将MIDI数据转换/合成音频流PCM数据.什么是一个简单的方法呢?

python audio midi

10
推荐指数
1
解决办法
4813
查看次数

Git:如何在特定提交之前删除历史记录

即,我有:

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,但究竟是怎么做的?)

(当然我知道这意味着历史改写...)

git git-filter-branch

10
推荐指数
2
解决办法
2421
查看次数

提升:Boost.Signals中究竟不是线程安全的?

我在多个地方读到Boost.Signals不是线程安全但我没有找到更多关于它的细节.这个简单的引用并没有说真的那么多.现在大多数应用程序都有线程 - 即使它们试图是单线程的,它们的一些库也可能使用线程(例如libsdl).

我想实现没有其他线程无法访问插槽的问题.所以在这个意义上它至少是线程安全的.

但到底有什么作用,哪些不行?只要我不同时访问它,它是否可以在多个线程中使用它?即如果我在插槽周围建立自己的互斥锁?

或者我被迫只在我创建它的那个线程中使用插槽?或者我第一次使用它的地方?

c++ boost boost-signals

9
推荐指数
1
解决办法
2129
查看次数

C++:错误"非命名空间范围中的显式特化"

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'

我明白错误在说什么.但为什么我不能这样做呢?我该如何解决?

c++ templates

9
推荐指数
1
解决办法
1万
查看次数

Python:深度复制ast节点树

我正在尝试使用deepcopy(从copy模块)深度复制模块中的节点树ast.

这似乎不起作用.我遇到了奇怪的错误,比如TypeError: required field "name" missing from FunctionDef当我使用复制的结果时(我检查了它;它在复制的节点中确实丢失了),所以它没有正确地复制它们.

有什么技巧可以使这个工作吗?或许我错过了什么?

python copy deep-copy abstract-syntax-tree

9
推荐指数
1
解决办法
1435
查看次数