问题列表 - 第39489页

D中的逻辑常量

D有两种类型的const:不可变变量是声明为不可变的变量,并且总是不可变的,而const变量只是对象的只读版本.

逻辑const是将函数标记为const,但允许对一个或多个成员变量进行写访问.这种方法的典型用途是进行惰性评估,例如(在C++中)

struct Matrix
{
  double determinant() const
  {
    if ( m_dirty )
    {
      m_determinant = /* expensive calculation */;
      m_dirty = false;
    }
    return m_determinant;
  }

  void set(int i, int j, double x) { m_dirty = true; ...; }

  mutable bool m_dirty;
  mutable double m_determinant;
};
Run Code Online (Sandbox Code Playgroud)

在这里,determinant()const,但仍然可以修改m_dirty,m_determinant因为它们被标记为mutable.

d常量(FAQ)说,D2不支持,因为它提供了,这是造成障碍编写并发程序,并使得一定的优化更加困难弱势保证逻辑常量.

我完全理解这个问题,但是如果我们需要逻辑const呢?

考虑上面的情况与Matrix类,但没有缓存(和任何需要逻辑const).还想象一下,这个类在我的代码库中使用,并且主要通过const引用访问.

现在考虑分析已经揭示该determinant()函数是代码中的瓶颈,而且它通常被重复访问,其值很少改变,即如上所述的缓存将是完美的优化.

没有逻辑const我怎么能这样做呢?遍及我的代码库将const引用更改为非const引用不是一种选择(出于显而易见的原因). …

d const const-correctness mutable

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

类无法嵌入.请改用适用的界面

我正在使用WIA将扫描仪的图像捕获到窗体.这是我正在使用的代码:

private void button2_Click(object sender, EventArgs e)
{
    const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
    CommonDialogClass wiaDiag = new CommonDialogClass();
    WIA.ImageFile wiaImage = null;

    wiaImage = wiaDiag.ShowAcquireImage(
            WiaDeviceType.UnspecifiedDeviceType,
            WiaImageIntent.GrayscaleIntent,
            WiaImageBias.MaximizeQuality,
            wiaFormatJPEG, true, true, false);

    WIA.Vector vector = wiaImage.FileData;

    Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
    i.Save(@"D:\prueba1.jpeg");
}
Run Code Online (Sandbox Code Playgroud)

当尝试运行这个小测试时,我收到此错误:

无法嵌入Interop类型'WIA.CommonDialogClass'.请改用适用的界面.

还有这个:

'WIA.CommonDialogClass'不包含'ShowAcquireImage'的定义,也没有接受第一个类型'WIA.CommonDialogClass'的扩展方法'ShowAcquireImage'(你是否缺少using指令或汇编引用?

我猜第二个错误是由于第一个错误而上升,对吧?

对于如何解决这个问题,有任何的建议吗?

c# wia

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

GWT - 如何添加一个简单的ComboBox

我需要描述一个简单的ComboBox的GWT类.看起来很奇怪,但我无法使用它.我找到了这个,但如果我尝试ComboBox combo=new ComboBox();我无法导入包(没有办法在NetBeans上导入它).同样的ComboBoxItem cbItem = new ComboBoxItem();(但这应该是Smart GWT Library).

这些是实际的导入:

import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
Run Code Online (Sandbox Code Playgroud)

也许有些冲突?我问对不起,我认为这是一个愚蠢的问题:)

gwt combobox

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

多值数据库的优缺点

我刚开始一份新工作,我将不得不用多值数据库(UniVerse)做大量的工作.我所拥有的小数据库经验是关系数据库(SqlServer),我正在寻找一些关于MVD与关系数据库的优缺点的无偏见信息.

办公室里的每个人都来自关系数据库背景(并且讨厌UniVerse)或者已经在这里待了很多年并且喜欢它.

universe relational-database multivalue-database

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

缩放图像以适应iPhone旋转时的屏幕

我有一个包含UIImageView的UIScrollView,当iPhone旋转时我有一些麻烦来获得正确的行为.

目标:从纵向到横向时,我试图获得以下内容:

_________
|AAAAAAA|
|BBBBBBB|         _________________
|CCCCCCC|         |     AAAAAA     |
|DDDDDDD|    -->  |     CCCCCC     |
|EEEEEEE|         |     EEEEEE     |
|FFFFFFF|         |_____GGGGGG_____|
|GGGGGGG|
---------
Run Code Online (Sandbox Code Playgroud)

在此处,纵向视图中的整个图像被缩放以适合iPhone旋转时的横向视图.它也是中心的.我也试图保持纵横比.用户交互也开启,用户应该能够使用整个屏幕来平移/缩放图像.

目前我autoresizingMask在scrollView上有以下内容:

 scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
                               UIViewAutoresizingFlexibleHeight);       
Run Code Online (Sandbox Code Playgroud)

但是这给出了以下内容

_________
|AAAAAAA|
|BBBBBBB|         _________________
|CCCCCCC|         |AAAAAA          |
|DDDDDDD|    -->  [BBBBBB          |
|EEEEEEE|         [CCCCCC          |
|FFFFFFF|         [DDDDDD__________|
|GGGGGGG|
---------
Run Code Online (Sandbox Code Playgroud)

此设置可保留左上角的比例和偏移.

问题: 是否可以使用合适的方法获得此行为autoresizingMask?如果没有,可能应该设置

 scrollView.autoresizingMask = UIViewAutoresizingNone;
Run Code Online (Sandbox Code Playgroud)

并手动设置zoomScalecontentOffset旋转UIScrollView.但是,应该在哪里完成?那个变化的动画怎么样?

解决方案: 通过稍微修改下面的答案,我使用以下代码得到了上述行为:

imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
                                     UIViewAutoresizingFlexibleHeight);

scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth 
                                     | UIViewAutoresizingFlexibleHeight);

imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = …
Run Code Online (Sandbox Code Playgroud)

iphone uiscrollview autoresizingmask

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

XSL使用'apply-templates'命名参数'with-param'

如果你想在完整的解释之前阅读它们,我的问题就在这篇文章的底部.

我正在使用XSL将XML文档转换为漂亮的网页,并且无法正确传递变量.我xsl:template定义了很多,并且需要将特定参数传递给其中一个.我希望我能够传递一个命名参数,该参数可能被发送到所有xsl:templates,但只能被一个人使用而被其他人忽略.然而,当我试图为自己测试这个(以及我对XSL的有限理解)时,我根本无法传递参数,更不用说测试它是否意外地干扰了任何其他xsl:template的.

以下是简化的示例代码(为此问题键入,可能包含一两个错字).我有很多不同xsl:template的定义来处理XML中的节点,到目前为止一切都运行良好.在为这些模板添加参数时,我似乎遇到了问题.

XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="main.xsl"?>
<wrapperNode>
  <testNode>
    <subNode/>
  </testNode>
</wrapperNode>
Run Code Online (Sandbox Code Playgroud)

main.xsl:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="test.xsl"/>
<xsl:output method="html" indent="yes"/>

<xsl:template match="/">

<html>
  <body>
      <xsl:apply-templates>
        <xsl:with-param name="testParam">TEST_PARAMETER</xsl:with-param>
      </xsl:apply-templates>
  </body>
</html>

</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

test.xsl:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="testNode">
  <xsl:param name="testParam" />
  TEST1
  <xsl:value-of select="$testParam" />
  TEST2
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

输出(实际):

TEST1 TEST2
Run Code Online (Sandbox Code Playgroud)

输出(预期/期望):

TEST1 TEST_PARAMETER TEST2
Run Code Online (Sandbox Code Playgroud)

我对此有疑问:

  1. 是否可以xsl:template使用xsl:apply-templateswith 向我的所有s 发送命名参数 xsl:with-param,但name= …

xslt parameters stylesheet apply-templates

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

PCI合规性和Ajax

我有这个想法,但我不确定它是否符合PCI标准.我是PCI合规领域的新手,很想知道这种情况是否违反了PCI.

那么,让我们设置场景.A公司符合PCI标准,并且在https上有一个Web服务,在支付处理方面暴露了一些功能.B公司不合规,但他们的网站是安全的.

以下是该方案的步骤.

  1. B的网站通过服务器端代码联系A的网络服务.此服务发回加密的验证令牌.
  2. B将此令牌注入包含用于接受信用卡信息的表单的页面中.
  3. 用户在B的网站上输入他们的信用卡信息.
  4. 表单信息以及令牌通过ajax调用发送到A的Web服务.
  5. A的Web服务处理数据并吐出状态(已批准/拒绝/等)

问题是,由于javascript直接从用户的机器转移到公司A的兼容服务器,它是否符合PCI标准?我很想知道这个领域的专家是怎么想的.

javascript ajax jquery pci-compliance

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

用C#替换类实现

我可以用自己的实现替换(或覆盖)类定义吗?

说明:

  • 我有一个带有System.Random实例的类,我试图在不修改原始代码的情况下测试它...
  • 所以我打算用我自己的一个实现替换Random类,它允许控制生成的序列..请看这个问题.

`

class foo
{
    Random r=new Random();
    double bar()
    {
         double ans=r.NextDouble();
         .....// evaluate ans
         return ans;
    }
}
Run Code Online (Sandbox Code Playgroud)

`

有什么方法可以用另一个替换Random类的实现而不改变(或用最小的改动)原始代码文件?

编辑:
一个解决方案是继承Random类并修改它...但是这需要用继承的实例更改每个Random实例...我不想修改代码,因为我只是测试它!
编辑2:
我可以在C#中说:"这个文件中的每个随机类都是MyNamespace.Random而不是System.Random"?

.net c# visual-studio

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

Vector :: push_back()中的C++好奇行为

我有以下数据结构作为名为"任务"的类:

private:
string name;
int computation_time;
int period;
Run Code Online (Sandbox Code Playgroud)

此外,我有一个ASCII文件与此内容:

A 3 10
B 2 12
C 1 11
Run Code Online (Sandbox Code Playgroud)

name = A,computation_time = 3,period = 10等等......

现在我想在文件中读取,创建Task-object并将其推回到向量中:

void read_in_task_list_and_create_tasks(const string &filename, vector<Task> &current_tasks)
{
    ifstream in_file;
    in_file.open(filename.c_str());

    string tmp_name;
    int tmp_computation_time;
    int tmp_period;

    while(!in_file.eof())
    {
        in_file >> tmp_name;
        in_file >> tmp_computation_time;
        in_file >> tmp_period;

//        Task tmp_task(tmp_name, tmp_computation_time, tmp_period);
//        current_tasks.push_back(tmp_task);
        current_tasks.push_back(Task(tmp_name, tmp_computation_time, tmp_period));
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我查看current_tasks向量时,它有元素,但它们的值与我的in_file值不匹配.观看已注释的线条.tmp_task对象是完全正确的,但如果它被推回,它就会丢失它的值,就像上面描述的那样.

这可能是Task-class中的Copy-Constructor问题,因为std :: vector正在管理内存分配吗?

我在Linux x86上使用带有g ++编译器的netbeans.

谢谢

c++ vector push-back

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

jQuery如何在从DOM中删除浮动跨度后为其设置动画?

假设我有4个<span/>(或div,无论如何)

[1] [2] [3] [4]

每个容器都有一个输入,导致它的容器被从DOM中移除.

如果我单击容器[2]中的输入,它将被移除,容器[3]和[4]不会向左移动:

[1] [3] [4]

我想知道如何动画这个过程 - 慢一点?

javascript jquery

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