问题列表 - 第30426页

如何在粘贴之前保证参数的完全宏扩展?

我有一个普通的宏:

#define mSwitch( Root, Case )  Root##_Case_##Case

#define mSpecialDisplay( what, Val )  mSwitch(mSpecialDisplay,what)(Val)
#define mSpecialDisplay_Case_Int(Val)    ...do stuff
#define mSpecialDisplay_Case_Float(Val)  ...do stuff
...more special cases
Run Code Online (Sandbox Code Playgroud)

如何保证变量Case在粘贴之前完全展开mSwitch

如果mSwitch传递一个文字值,它工作正常,但如果有多个间接层或中间操作,mSwitch最终会在完全展开之前粘贴其中一个.

我正在使用MSVC 2005.

有没有一种简单的方法可以确保参数在粘贴完成之前完全展开?

谢谢


好吧,举一个例子可能并不难:

  #define mMDebugInfo( ... ) mMDebugExp( mMDebugInfo_( 0, __VA_ARGS__ ) )

  #define mMDebugInfo_( C, ... ) mMAritize( mMSwitch( mMDebugInfo, mMMetaTrait( Detect, __VA_ARGS__ ) ), (C, __VA_ARGS__) )

  #define mMDebugInfoRep( C, ... ) mMXP##C( mMDebugInfo_ )mMXP##C((mMIInc(C),__VA_ARGS__)) //(mMExpDo(mMGlue( mM, C)##DebugInfo_(mMIInc(C),__VA_ARGS__))

  #define mMDebugInfo1( C, ... …
Run Code Online (Sandbox Code Playgroud)

c++ macros c-preprocessor

7
推荐指数
1
解决办法
3032
查看次数

是否可以在Tkinter中获取小部件设置?

如果我能得到类似下面的内容,那就太棒了.

伪代码:

U = widget1.SettingsGet()
Print U 
Run Code Online (Sandbox Code Playgroud)

打印时,会返回以下内容:

widget1(background='green',foreground='grey',boarderwidth=10, relief='flat')
Run Code Online (Sandbox Code Playgroud)

能够获得小部件设置真的很有用.这样我就可以相应地操纵其他小部件.

python settings get tkinter widget

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

什么是netbean的Lookup?

我很难理解这一点.基本上,此Lookup API用于保持松散耦合的模块间性质.那么基本上服务提供者和消费者模块可以使用Lookup API相互通信吗?

但我不明白的是:

Lookup就像一个装满那个类的对象的包?有人可以给出一个更简单的类比吗?

那么创建依赖关系,并在服务使用者中实现LookupListener是否正确?消费者显然依赖提供者.

那么LookupListener的实现是什么监听的?这是自己的Lookup?那么如果有另一个模块的类的映射,它将作为一个对象存储在Lookup的Lookup实现LookupListener中?

所以查找有点像一个包,可以存储另一个模块的类和它的方法?

这是确定选择的正确过程吗?

  1. 在TopComponent(视图)中,您实现了Lookup Listener和action Listener.
  2. 你创建一个新对象(来自另一个模块)
  3. associateLookup(Lookups.singleton(fff));再次,与这条线混淆:associateLookup()究竟在做什么?
  4. result = Utilities.actionsGlobalContext().lookupResult(Browser1.class);这条线在做什么?结果是什么?它是否包含Browser1类(来自其他模块)?
  5. result.addLookupListener (this); 为什么要为结果添加监听器?我们在TopComponent上正在倾听什么以及为什么?

  6. 做完了?

最后,为了进一步让我感到困惑,Node API如何进入pla7y?

java netbeans netbeans-platform

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

jquery-ui带有隐藏溢出的可排序连接列表

我有两个固定的hight div,每个div包含一个相互连接的可排序列表.有没有办法隐藏溢出,同时仍然连接列表?例如,如果将溢出设置为隐藏,那么当它被拖到div之外时,li不会显示.

我知道一个可能的解决方案是计算div可以包含的最大li数,并根据可见元素的数量动态添加/删除元素,但我想知道是否有更好的解决方案?

javascript css jquery jquery-ui

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

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

如何在UITableView中选择时更改单元格标题颜色

嗨,我正在使用UITableView来显示列表.我已对其进行了自定义并在单元格中添加了4个UILabel,但是当选择该行时,行选择颜色(自定义为绿色)和标签文本颜色(也为绿色)保持不变.因此,很难看到细胞的文本.我想在选择行时将标签的颜色更改为白色,否则为绿色.

谁能帮我吗?

谢谢,

iphone text uitableview

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

如何在Tkinter中显示工具提示?

工具提示是当鼠标在窗口小部件上悬停一段时间时弹出的那些小文本.

如何向tkinterPython应用程序添加工具提示消息?

工具提示示例

python tkinter tooltip

36
推荐指数
7
解决办法
3万
查看次数

#pragma和#ifndef有什么区别?

可能重复:
#pragma一次vs包括警卫?

我应该什么时候使用#pragma once

我应该什么时候使用#ifndef HEADER_H_INCLUDED

c

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

重复调用容器上的size()(循环期间)不好?

出于效率原因,我总是避免编写这样的循环:

for(std::size_t i = 0; i < vec.size(); ++i) { ... }
Run Code Online (Sandbox Code Playgroud)

哪里vec是STL容器.相反,我要么

const std::size_t vec_size = vec.size();
for(std::size_t i = 0; i < vec_size; ++i) { ... }
Run Code Online (Sandbox Code Playgroud)

或使用容器迭代器.

但第一个解决方案真的有多糟糕?我记得在Meyers中读到它将是二次而不是线性的,因为矢量不知道它的大小而且必须反复计算.但现代编译器不会检测到这种情况并将其优化掉吗?

c++ optimization loops stl

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

如果两个ObjC类别覆盖相同的方法会发生什么?

我知道有关Objective-C类别的一些规则:

  1. 类别方法不应覆盖现有方法(类或实例)
  2. 对同一个类实现相同方法的两个不同类别将导致未定义的行为

我想知道当我覆盖同一类别中我自己的一个类别方法时会发生什么.例如:

@interface NSView (MyExtensions)
- (void)foo; // NSView category implementation
@end

@interface MyClass : NSView
{ }
@end

@interface MyClass (MyExtensions)
- (void)foo; // MyClass category implementation
@end
Run Code Online (Sandbox Code Playgroud)

定义了这些接口后,当我运行以下代码时将执行哪个方法?

MyClass * instance = [[MyClass alloc] initWith...];
[instance foo];
[instance release];
Run Code Online (Sandbox Code Playgroud)

注意:使用我的编译器,MyClass实现优先,但我不确定是否可以保证发生,或者只是一种特定的未定义行为.

methods inheritance cocoa objective-c categories

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