问题列表 - 第19061页

c ++为什么这个例子中的构造函数被调用了两次?

我只是试着了解以下情况的行为:

template <typename T1>
struct A{
    template <typename T2>
    A(T2 val){
        cout<<"sizeof(T1): "<<sizeof(T1)<<" sizeof(T2): "<<sizeof(T2)<<endl;
    }
    T1 dummyField;
};
Run Code Online (Sandbox Code Playgroud)

所以 - 该类用T1模板化,构造函数用T2模板化

现在 - 如果我写:

A<bool> a = A<bool>(true);
Run Code Online (Sandbox Code Playgroud)

输出符合预期:

sizeof(T1): 1 sizeof(T2): 1
Run Code Online (Sandbox Code Playgroud)

但是 - 如果我写:

A<bool> a = A<float>(3.5f);
Run Code Online (Sandbox Code Playgroud)

输出是:

sizeof(T1): 4 sizeof(T2): 4
sizeof(T1): 1 sizeof(T2): 4
Run Code Online (Sandbox Code Playgroud)

为什么构造函数使用模板参数float调用两次?

谢谢你满足我的好奇心

c++ templates constructor

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

进程间通信

我正在寻找一些数据来帮助我决定 Linux 上两个独立进程之间的通信哪个更好/更快:

  • 传输控制协议
  • 命名管道

管道的系统开销和 TCP 堆栈开销哪个更糟糕?


更新的具体要求:

  • 只需要本地IPC
  • 大多会是很多短信
  • 无需跨平台,只需Linux

c++ linux

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

GCC,ARMboot - 创建没有任何库和任何操作系统的独立应用程序

我有一个嵌入式硬件系统,其中包含一个基于ARMboot的引导加载程序(与Uboot和PPCboot非常相似).

此引导加载程序通常用于从闪存加载uClinux映像.但是,现在我正在尝试使用此引导加载程序来运行独立的helloworld应用程序,它不需要任何链接库.实际上,它只包含while(1){}main函数中的代码.

我的问题是我无法找出我应该使用哪些GCC设置来构建一个独立的格式正确的二进制文件.

我使用以下构建命令:

cr16-elf-gcc -o helloworld helloworld.c -nostdlib
Run Code Online (Sandbox Code Playgroud)

产生警告信息:
警告:找不到条目符号_start; 默认为00000004

此后,在引导加载程序中,我上传生成的应用程序并在某个地址启动它:

tftpboot 0xa00000 helloworld
go 0xa00004
Run Code Online (Sandbox Code Playgroud)

但它不起作用:(系统重新启动.

通常它应该挂起(因为while(1)).

c embedded gcc arm bootloader

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

抛出BackingStoreException的java.util.Prefs - 为什么?

我有一个系统可以缓存启动时SOAP调用的微小/简单结果

我需要的情况下才能够重新加载启动其缓存(如果SOAP服务是死的),也使用此缓存文件处理多个实例的可能性

我选择使用java.util.prefs,但Java的内置自动同步线程间断性地失效(使用默认的JVM 30年代后备存储同步的时间为1%)倾销以下除外:

Jan 8, 2010 12:30:07 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Run Code Online (Sandbox Code Playgroud)

我怀疑这个错误,但这是固定在1.5(虎-B40),以及我们对这个盒子Java 5的是"1.5.0_16-B02".

我现在怀疑,这可能是因为我们有多个JVM共享这个后备存储,但是这似乎并没有对我们的其他机器的情况发生.

谁能证实这一点?有什么风险?

如果我的方法有缺陷,我应该作为替代方案使用什么?

java preferences

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

Haskell学习练习给出了奇怪的结果

这是个问题:

"写的是计算列表的平均值的功能,即通过其长度划分列表中的所有元素的总和.(您可能需要使用fromIntegral功能列表的长度将从一个整数到浮点数.)"

首先我试过这个:

mean :: [Double] -> Double
mean []     = 0
mean (x:xs) = (x + mean xs) / (1 + mean xs)
Run Code Online (Sandbox Code Playgroud)

但它给了我奇怪的结果,例如,当我像这样使用它时:

mean [2,4,6]  
Run Code Online (Sandbox Code Playgroud)

它给我的结果:1.41176
它应该是:4

为什么?

我尝试了另一件事:

mean :: [Double] -> Double  
mean list = (summ list) / (count list)  
    where count []     = 0  
          count (x:xs) = 1 + count xs  
          summ []      = 0  
          summ (x:xs)  = x + summ xs
Run Code Online (Sandbox Code Playgroud)

但是当我试图将文件加载到GHC时,我有一个错误.
错误是:

parse error on input 'count'  
Failed, modules loaded: none
Run Code Online (Sandbox Code Playgroud)

再一次,我做错了什么?

最后,我尝试了这个(成功): …

haskell

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

在matplotlib中绘制子图周围的边框

任何人都知道如何在matplotlib中的图形中围绕单个子图绘制边框?我正在使用pyplot.

例如:

import matplotlib.pyplot as plt
f = plt.figure()
ax1 = f.add_subplot(211)
ax2 = f.add_subplot(212)
# ax1.set_edgecolor('black')
Run Code Online (Sandbox Code Playgroud)

..但Axes对象没有'edgecolor',我似乎无法找到从图形级别勾画出情节的方法.

我实际上是在包装mpl代码并添加带有控件的wx UI,我想根据选择的子图来获取上下文.即,用户点击图画布中的子图 - 子图是"已选中"(在其周围绘制轮廓,理想情况下是锯齿) - GUI更新以呈现控件以修改该特定子图.

python matplotlib

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

用于Java的RSA算法库

我想为我的应用程序提供基于RSA算法的简单许可机制.

有没有免费的RSA库?

java open-source rsa

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

如何在Java中绘制有向箭头线?

我想在Java中绘制一条有向箭头线.

目前,我正在用java.awt.Line2D.Double班级画一条线

g2.setStroke(new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); // g2 is an instance of Graphics2D
g2.draw(new Line2D.Double(x1,y1,x2,y2));
Run Code Online (Sandbox Code Playgroud)

但只显示该行,并且不显示有向箭头. BasicStroke.Join_BEVEL用于绘制有向箭头.当两个线段相遇时应用它.

我绘制的线条符合矩形的边框,但没有绘制有向箭头.只绘制一条简单的线条.

有什么我想念的吗?

java drawing line java-2d

24
推荐指数
4
解决办法
6万
查看次数

javascript找到可用的内存

让我们立即明确:这不是关于内存泄漏的问题!我有一个页面,允许用户输入一些数据和JavaScript来处理这些数据并产生结果.JavaScript在DIV上生成增量输出,如下所示:

(function()
{
   var newdiv = document.createElement("div");
   newdiv.innerHTML = produceAnswer();
   result.appendChild(newdiv);
   if (done) {
      return;
   } else {
      setTimeout(arguments.callee, 0);
   }
})();
Run Code Online (Sandbox Code Playgroud)

在某些情况下,计算将生成如此多的数据,IE8将失败并显示以下消息:

处理太多数据时没有足够的存储空间

问题是:有没有办法计算出数据量过多的数据?

正如我所说,没有错误可以解决.这是一个真正的内存不足,因为计算需要创建太多的html元素.

我的想法是在执行计算之前运行一个函数,以便在浏览器成功时提前计算.但要这样做,通用的方式,我认为我需要找到我的浏览器可用的内存.

任何建议都是受欢迎的.

javascript memory large-data-volumes cross-browser

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

关于列表属性的Automapper新手问题

作为AutoMapper的新粉丝,我将如何使用它来执行以下操作:

给定以下类,我想从Group创建FlattenedGroup,其中项字符串列表映射到Item的title属性.

public class Group
{
    public string Category { get; set; }
    public IEnumerable<Item> Items { get; set; }
}

public class Item
{
    public int ID { get; set; }
    public string Title { get; set; }
}


public class FlattenedGroup
{
    public string Category { get; set; }
    public IEnumerable<string> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

约瑟夫

automapper

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