小编Dir*_*eld的帖子

内联函数中的静态变量

我有一个在头文件中声明和定义的函数.这本身就是一个问题.如果未内联该函数,则使用该标头的每个翻译单元都会获得该函数的副本,并且当它们链接在一起时会重复.我通过使函数内联来"修复",但我担心这是一个脆弱的解决方案,因为据我所知,即使指定了"inline"关键字,编译器也不保证内联.如果不是这样,请纠正我.

无论如何,真正的问题是,这个函数里面的静态变量会发生什么?我最终会收到多少份?

c++ linker header inline-functions

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

为什么这个C++ STL分配器不分配?

我正在尝试编写一个派生自定义的STL分配器std::allocator,但不知何故所有调用都要allocate()转到基类.我把它缩小到这段代码:

template <typename T> class a : public std::allocator<T> {
public:
    T* allocate(size_t n, const void* hint = 0) const {
        cout << "yo!";
        return 0;
    }
};

int main()
{
    vector<int, a<int>> v(1000, 42);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待"哟!" 打印,然后是一些可怕的错误,因为我实际上没有分配任何东西.相反,该程序运行良好,并没有打印.我究竟做错了什么?

我在gcc和VS2008中得到了相同的结果.

c++ stl allocation

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

在Java ME中将"America/Los Angeles"时区转换为"PST"或"PDT"

我的服务器向我发送格式为"America/Los Angeles"的时区.在客户端,我有时间需要在该时区显示.答案将是"PST"或"PDT",具体取决于给定时间的夏令时.我该如何进行转换?

我在使用Java ME(Blackberry 4.7,准确),所以我不能使用Joda Time.

我需要在很多日期(但只有一个时区)快速进行此计算,因此我不能让服务器向我发送偏移量,因为偏移量可能会根据日期而变化.

编辑:让我重申一下这个问题,因为似乎有些混乱.我获得了zoneinfo名称和日期.我想知道那个时区GMT在该时区的偏移量.答案将根据夏令时而有所不同.

作为额外的奖励,我想让TLA向用户展示(即"PST"或"PDT"),但这是次要的.

解决方案:我将在此总结解决方案,因为从下面的答案中可以清楚地看到它.这基本上是我需要的,在J2ME中:

TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(zone);

calendar.setTime(new Date(2011, 1, 1, 12, 0, 0));      
System.out.println(zone.getOffset(1, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.DAY_OF_WEEK), calendar.get(Calendar.MILLISECOND)));
calendar.setTime(new Date(2011, 6, 1, 12, 0, 0));
System.out.println(zone.getOffset(1, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.DAY_OF_WEEK), calendar.get(Calendar.MILLISECOND)));
Run Code Online (Sandbox Code Playgroud)

java timezone blackberry date java-me

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

QPushButton更改相同布局中其他小部件的边距

我有一个很大的布局,其中包含以下结构的小部件和布局:

QVBoxLayout
  QTableView
  QPushButton
Run Code Online (Sandbox Code Playgroud)

我将布局的边距,边距和间距设置为0。在Mac OS X上渲染效果的方式是,按钮无法填充其所有空间。相反,它周围有一些填充。神奇的是,布局似乎知道这一点,并确保表格视图的宽度与按钮的宽度完全一样:

QPushButton导致的魔术填充

当我删除按钮时,表格视图将返回其完整宽度:

这里没有魔术垫

如何更改它,以便按钮以及表格视图变得与布局一样宽?

我玩过样式表的填充和边距,虽然可以使用它们来使按钮变宽,但树状视图周围的多余填充仍然保留。到目前为止,我唯一的解决方案是将按钮包装在另一个小部件中,然后通过样式表将其边距和填充设置为0,但随后我失去了圆角外观。

macos qt qt-creator

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

以编程方式触发完整堆栈转储?

当我向我的java进程发送SIGQUIT命令(使用kill -3或kill -QUIT)时,它会向stderr打印所有堆栈的跟踪,包含有关锁的信息和死锁检测.我能以某种方式从程序内部触发这个吗?我希望每次某个操作花费太长时间时自动执行此操作.

我知道有可能获得堆栈跟踪(请参阅是否有方法转储堆栈跟踪而不在java中抛出异常?,以线程方式转储/ JDI(Java调试器接口)).但是我希望看到所有的东西:堆栈跟踪,线程状态,持有的锁,阻塞锁,死锁检测等,即我发送SIGQUIT时得到的所有内容; 不只是堆栈跟踪.

java jvm signals stack-trace

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

你用什么来编写跨平台客户端应用程序?

我正在写一个客户端应用程序,非常老派,相当保守.在Windows上,我可能会使用.NET Forms,或者可能是WPF,我不确定.在Mac上,我会使用Objective-C,Cocoa和所有这些东西.但我希望这个应用程序同时适用,我宁愿只写一次.

我应该在QT写吗?我听说当你开始使用它时,QT在跨平台使用时会出错.诺基亚最近的麻烦是什么让我担心连续性?社区对Digia的看法是什么?

我应该用Java写吗?较新的Mac OS不再带有Java,Windows也没有.如何创建这样的良好设置体验?那么USB设备呢?有一些Java USB项目,但它们都是基于Windows或Linux的,没有Mac.我也担心得到一个原生的外观和感觉,但我想Swing让我在那里覆盖.

我应该用Python编写吗?我担心这里的表现.此外,我之前编写过大型Python应用程序,并且我发现由于缺乏静态分析,Python很难扩展到大型代码库.

你是怎么写的?

python java qt

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

使用STL与自定义实用程序类的程序员生产力

我在一个环境中工作,由于历史原因,我们使用大量的自定义实用程序类,其中大部分是在STL到达现场之前编写的.我认为至少使用STL编写新代码是个好主意的原因有很多,但主要原因是我相信它可以提高程序员的工作效率.不幸的是,这是我不知道如何证明的一点.

是否有任何研究试图量化,甚至只暗示使用STL提高生产力?

更新:我想我应该更具体一点.我并不主张重写现有的代码,我并不担心新员工会有一个好的开始.前者是愚蠢的,而后者本身并不足以说服人们.

c++ stl

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

使用页面文件进行缓存?

我必须处理通常不适合主内存的大量数据.我访问这些数据的方式具有很高的局部性,因此在内存中缓存部分内容看起来是个不错的选择.将malloc()作为一个庞大的数组是否可行,并让操作系统找出要分页的位和要保留的位数?

c++ caching virtual-memory

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