小编Ske*_*een的帖子

在x86-32汇编中"lea eax,[ebx + eax]"和"add eax,ebx"有什么区别?

GCC给了我一些汇编代码,在这个声明里面:

lea eax, [ebx+eax]
Run Code Online (Sandbox Code Playgroud)

(英特尔语法)只是好奇,它之间有什么区别,和:

add eax, ebx
Run Code Online (Sandbox Code Playgroud)

是?

eax和ebx包含函数的返回值:)

mov eax, DWORD PTR [ebp+8]
mov DWORD PTR [esp], eax 
call CALC1
mov ebx, eax.
mov eax, DWORD PTR [ebp+8]
mov DWORD PTR [esp], eax
call CALC2
lea eax, [ebx+eax]
Run Code Online (Sandbox Code Playgroud)

x86 assembly

4
推荐指数
3
解决办法
1506
查看次数

将std :: tuple <T ...>转换为T.

所以我给了一个std::tuple<T...>,我想创建一个接受的函数指针T...,目前这就是我所拥有的;

template<typename... Arguments>
using FunctionPointer = void (*)(Arguments...);

using FunctionPtr = FunctionPointer<typename std::tuple_element<0, V>::type,
                                    typename std::tuple_element<1, V>::type,
                                    typename std::tuple_element<2, V>::type>;
Run Code Online (Sandbox Code Playgroud)

但是我似乎无法找到一种方法来做到这一点,而无需手动输入每个索引0, ..., tuple_size<V>::value.FunctionPtr是在上下文中定义的,其中V=std::tuple<T...>(也有一个可变参数模板(因此我不能直接传递T...))

我想我需要生成一些索引列表,并做一些黑魔法..

c++ templates c++11 stdtuple

4
推荐指数
2
解决办法
320
查看次数

python的打印是否同步?

python的打印是否同步?:)

线程之间.

python printing

3
推荐指数
1
解决办法
2226
查看次数

Doxygen解析javadoc?

我很好奇Doxygen是否解析了Javadoc的评论? - 也就是说,doxygen接受类似的东西:

/**
   Greet with a "Hello" message.
   @param a string containing the name of the person or entity
   @ret return a string containing "Hello" and the name of the greeted person or entity.
*/
public String sayHello(string name)
{
   return "Hello" + name;
}
Run Code Online (Sandbox Code Playgroud)

还有一件事,是否有更正确的方式来做这些评论,doxygen风格?

documentation javadoc doxygen documentation-generation

3
推荐指数
1
解决办法
2509
查看次数

C/C++指针技巧(将指针保存到int,并转换回来)

正如标题所说,我现在正在做一些带有C++指针的小黑客,但是有些东西在这里没有用到我得到的东西:

uintptr_t texture_pointer = (int)((void*) &texture);
Run Code Online (Sandbox Code Playgroud)

纹理是一个类; 这似乎工作得很好,因为我得到一个指针值,我已经保证我得到了相同的值到我的另一个函数,它应该得到对象; 这是失败的代码:

std::cout << "C++ BEFORE: " << texture_pointer << std::endl;
Texture texture = *(Texture*)((void*) texture_pointer);
std::cout << "C++ AFTER: " << (uintptr_t)((void*) &texture) << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出我除外; 是两个相同的数字,但我得到两个不同的数字,因此我认为必定有一个错误,但我似乎无法找到它.

示例输出:

C++ BEFORE: 2685236
C++ AFTER: 2684960
Run Code Online (Sandbox Code Playgroud)

c++ pointers casting void-pointers

3
推荐指数
1
解决办法
5125
查看次数

boost :: spirit :: lex,如何生成文件令牌的结尾?

问题很简单,我写了一个词法分析器,使用boost :: spirit,但是我似乎找不到方法来生成EOF令牌. - 那怎么会这样做呢?

token boost-spirit eof boost-spirit-lex

3
推荐指数
1
解决办法
247
查看次数

模板模板参数,为什么类是强制的?

如果我写的话,标题几乎说明了一切;

                                        vvvvv
template <template <typename, typename> class StdContainer, typename T>
class DerivedContainer: public StdContainer<T, std::allocator<T>>
{ /*...*/ };
Run Code Online (Sandbox Code Playgroud)

为什么需要 class 关键字?那是当 typename 被允许时,作为所有其他模板上下文中的替代品。消歧?标准的哪一部分也说明了这一点?

笔记; 我不是从标准容器派生的,这只是一个例子。

c++ templates

3
推荐指数
1
解决办法
248
查看次数

Lua - 需要回退/错误处理

我目前awesome在运行不同发行版的各种Linux机器上使用窗口管理器.所有机器都使用same(lua)配置文件.

一些机器安装了lua-filesystem(lfs),而其他机器则没有.我的配置最好使用lfs,但如果没有安装,我想提供一个替代(次优)回退例程.

这是我的所有问题的简单问题:

  • 如何捕获require(lfs)语句引发的错误?

lua require awesome-wm luafilesystem

3
推荐指数
1
解决办法
1396
查看次数

super.super.func()? - Java多态性

假设我在Java中有3个类,那么super one有一个名为func()的函数,我现在创建一个子类来覆盖它,并且我的子类的子类,现在在我的子子类上工作我将如何调用子类的'func()'和超类?

我尝试了'this'"指针",但是Java'在运行时'修复'它并调用subsub func().

编辑:谢谢大家; 'Skeen回到了绘图板'.

java polymorphism

2
推荐指数
1
解决办法
1360
查看次数

Lua替代optim()

我目前正在寻找R编程语言的替代品; optim()函数,如果有人知道如何处理这个?

optimization lua programming-languages r

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