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引用不是一种选择(出于显而易见的原因). …
我正在使用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指令或汇编引用?
我猜第二个错误是由于第一个错误而上升,对吧?
对于如何解决这个问题,有任何的建议吗?
我需要描述一个简单的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)
也许有些冲突?我问对不起,我认为这是一个愚蠢的问题:)
我刚开始一份新工作,我将不得不用多值数据库(UniVerse)做大量的工作.我所拥有的小数据库经验是关系数据库(SqlServer),我正在寻找一些关于MVD与关系数据库的优缺点的无偏见信息.
办公室里的每个人都来自关系数据库背景(并且讨厌UniVerse)或者已经在这里待了很多年并且喜欢它.
我有一个包含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)
并手动设置zoomScale和contentOffset旋转UIScrollView.但是,应该在哪里完成?那个变化的动画怎么样?
解决方案: 通过稍微修改下面的答案,我使用以下代码得到了上述行为:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = …Run Code Online (Sandbox Code Playgroud) 如果你想在完整的解释之前阅读它们,我的问题就在这篇文章的底部.
我正在使用XSL将XML文档转换为漂亮的网页,并且无法正确传递变量.我xsl:template定义了很多,并且需要将特定参数传递给其中一个.我希望我能够传递一个命名参数,该参数可能被发送到所有xsl:templates,但只能被一个人使用而被其他人忽略.然而,当我试图为自己测试这个(以及我对XSL的有限理解)时,我根本无法传递参数,更不用说测试它是否意外地干扰了任何其他xsl:template的.
以下是简化的示例代码(为此问题键入,可能包含一两个错字).我有很多不同xsl:template的定义来处理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)
<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)
<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)
我对此有疑问:
是否可以xsl:template使用xsl:apply-templateswith
向我的所有s
发送命名参数
xsl:with-param,但name= …
我有这个想法,但我不确定它是否符合PCI标准.我是PCI合规领域的新手,很想知道这种情况是否违反了PCI.
那么,让我们设置场景.A公司符合PCI标准,并且在https上有一个Web服务,在支付处理方面暴露了一些功能.B公司不合规,但他们的网站是安全的.
以下是该方案的步骤.
问题是,由于javascript直接从用户的机器转移到公司A的兼容服务器,它是否符合PCI标准?我很想知道这个领域的专家是怎么想的.
我可以用自己的实现替换(或覆盖)类定义吗?
说明:
`
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"?
我有以下数据结构作为名为"任务"的类:
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> ¤t_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.
谢谢
假设我有4个<span/>(或div,无论如何)
[1] [2] [3] [4]
每个容器都有一个输入,导致它的容器被从DOM中移除.
如果我单击容器[2]中的输入,它将被移除,容器[3]和[4]不会向左移动:
[1] [3] [4]
我想知道如何动画这个过程 - 慢一点?
c# ×2
javascript ×2
jquery ×2
.net ×1
ajax ×1
c++ ×1
combobox ×1
const ×1
d ×1
gwt ×1
iphone ×1
mutable ×1
parameters ×1
push-back ×1
stylesheet ×1
uiscrollview ×1
universe ×1
vector ×1
wia ×1
xslt ×1