我有一个 C++/Rcpp 函数,我需要编译并链接到 pomp 包才能访问随机数生成器。我可以得到头文件,但如何让它链接到编译后的代码?
CppColonized<-cxxfunction(
sig=signature(x="numeric", t="numeric", params="numeric", dt="numeric"),
plugin='Rcpp',
includes = sprintf("#include <Rmath.h>\n#include <math.h>\n#include\"%s\"",
base:::system.file("include/pomp.h",package="pomp")),
body=Code,verbose=T)
Run Code Online (Sandbox Code Playgroud)
该代码使用了 pomp 包中的 reulermultinom 函数,当我评估它时,它给出了错误
对 `reulermultinom(int, double, double*, double, double*) 的未定义引用
发出的命令是
g++ -I"C:/PROGRA~1/R/R-211~1.1/include" -I"C:/PROGRA~1/R/R-211~1.1/library/Rcpp/include" -O2 -Wall - c file2f752742.cpp -o file2f752742.o g++ -shared -s -static-libgcc -o file2f752742.dll tmp.def file2f752742.o C:/PROGRA~1/R/R-211~1.1/library/Rcpp/lib libRcpp.a -LC:/PROGRA~1/R/R-211~1.1/bin -lR
似乎应该有一个 -lpomp 或类似的东西。
我有一些包裹
com.company.testing.module1
com.company.testing.module2
com.company.testing.module3
Run Code Online (Sandbox Code Playgroud)
我也有一些有TestNG注释的类
com.company.testing.tests
Run Code Online (Sandbox Code Playgroud)
现在我把testng.xml放进去了
com.company.testing
Run Code Online (Sandbox Code Playgroud)
XML文件看起来像
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Foo">
<test name="Bar">
<package>
<package name="com.company.testing.tests" />
</package>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
如何从Eclipse运行该套件?我应该做什么运行配置?
ReporterTbl与...有一对多的关系AttachmentTbl.
在ReporterTbl,我有一个ID(101),我可以有AttachmentTbl多个Attachment与之相关的ReporterTbl.Id
SELECT
ISNULL(ReporterTbl.Id, 0) AS Id,
CONVERT(char(10), ReporterTbl.StartDate, 101) AS StartDate,
ISNULL(ReporterTbl.PriorityId, 0) AS PriorityId,
ISNULL(dbo.ReporterTbl.PriorityDesc, '') AS PriorityDesc,
(select
ReporterTbl.Id,
COUNT(dbo.AttachmentTbl.Id) AS attachment_Id
FROM
dbo.AttachmentTbl RIGHT OUTER JOIN
ReporterTbl ON dbo.AttachmentTbl.Id = ReporterTbl.Id
GROUP BY ReporterTbl.Id) AS IsAttachment
)
Run Code Online (Sandbox Code Playgroud)
基本上,我想知道的是ReporterTbl.ID,Attachment我有多少?
表结构:
ReporterTbl
Id int {**PrimaryKey**}
StartDate datetime
PriorityId int
PriorityDesc varchar(500
AttachmentTbl:
AttachmentId indentity
Id {**FK to ReproterTbl**}
Filename
Content
...
Run Code Online (Sandbox Code Playgroud) 首先,看起来DateTime格式变量似乎没有在任何地方记录,因此对于任何可以在rubydocs中向我展示的人来说都是+1 .其次,在查看Date.strftime功能代码时,我没有看到任何可以让我做类似的事情:
Thursday, September 9th 2010
有谁知道这是否可能?
static void Main(string[] args)
{
List<int> listArray = new List<int>();
listArray.Add(100);
foreach (int item in listArray)
Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)
a)在foreach声明中呼吁listArray's IEnumerable<int>.GetEnumerator()实现,它通过调用它listArray.GetEnumerator()或IEnumerable<int>.GetEnumerator()或 IEnumerable.GetEnumerator()?
b)同样,当foreach引用对象返回时listArray's IEnumerable<int>.GetEnumerator(),它是通过引用IEnumerator还是IEnumerator<int>引用类型引用该对象?
谢谢
编辑:
我的一些问题将引用此文:
o使用标识符GetEnumerator对类型X执行成员查找,而不使用类型参数.如果成员查找不产生匹配,或者产生歧义,或产生不是方法组的匹配,请检查可枚举接口,如下所述.如果成员查找产生除方法组或不匹配之外的任何内容,建议发出警告.
o使用生成的方法组和空参数列表执行重载解析.如果重载决策导致没有适用的方法,导致歧义,或导致单个最佳方法但该方法是静态的或不公开的,请检查可枚举的接口,如下所述.如果重载决策产生除明确的公共实例方法或没有适用的方法之外的任何内容,建议发出警告.
o如果GetEnumerator方法的返回类型E不是类,结构或接口类型,则会产生错误,并且不会采取进一步的步骤.
o在E上执行成员查找,标识符为Current,没有类型参数.如果成员查找不产生匹配,则结果是错误,或者结果是除允许读取的公共实例属性之外的任何内容,产生错误并且不执行进一步的步骤.
o成员查找在E上执行,标识符为MoveNext,没有类型参数.如果成员查找不产生匹配,则结果是错误,或者结果是除方法组之外的任何内容,产生错误并且不执行进一步的步骤.
o使用空参数列表对方法组执行重载分辨率.如果重载决策导致没有适用的方法,导致歧义,或导致单个最佳方法但该方法是静态的或非公共的,或者其返回类型不是bool,则产生错误并且不采取进一步的步骤.
o集合类型为X,枚举器类型为E,元素类型为Current属性的类型.
否则,检查一个可枚举的接口:o如果只有一个类型T,从而存在从X到接口System.Collections.Generic.IEnumerable的隐式转换,那么集合类型就是这个接口,枚举器类型就是接口System.Collections.Generic.IEnumerator,元素类型为T.
否则,如果存在多个这样的类型T,则产生错误并且不采取进一步的步骤.
否则,如果存在从X到System.Collections.IEnumerable接口的隐式转换,则集合类型为此接口,枚举器类型为接口System.Collections.IEnumerator,元素类型为object.
否则,将产生错误,并且不会采取进一步的步骤.
1)
引自Eric Lippert:
选项(1)是正确的.请注意,这意味着返回的枚举器是一个未装箱的可变结构.
事实上,这是一个可变的结构,如果你做一些愚蠢的事情,比如传递结构,就像它是一个引用类型一样,它具有非常实际的效果; 它将按值复制,而不是通过引用复制.
来自http://en.csharp-online.net/ECMA-334:_15.8.4_The_foreach_statement:
foreach(V v in x)嵌入式语句
然后扩展到:
Run Code Online (Sandbox Code Playgroud){ E e = ((C)(x)).GetEnumerator(); try { V v; while (e.MoveNext()) { …
我已经看到了一些可能对我有帮助的例子,但是我没有那么多时间来探索它们,因为我今天刚刚发现我的老板必须比计划提前一周演示这个,我想要添加此新功能.我会尽量保持这简短而甜蜜.
好吧,这就像我第10次尝试纠正这一点,希望它是明确的.这是一个应用程序.需要在DataGridView(已完成)中显示数据行.根据报告(完成),某些行的突出显示不同.大多数报告都有自己的SQL文件,并在运行时从INI文件(完成)实现.但是,有些报告需要调用函数.该应用程序正在使用SQLite数据库.我想拥有作为报告的DLL,所有格式相同,并且所有这些都返回ReportRecord列表.ReportRecord是在我的主应用程序中定义的类,但我也会在创建它们时在每个DLL中定义它.我想实例化DLL,调用它的"GetRecords"函数,并在我的主应用程序中使用它.这是一些伪代码.如果你们能告诉我是否可能,
伪码
foreach (string str in System.IO.Directory.GetFiles("C:\\ReportDlls", "*.dll"))
{
//Instantiate DLL e.g. newReport
//_lstReportRecords.AddRange(newReport.GetReportRecords());
}
Run Code Online (Sandbox Code Playgroud)
反正有没有这样做?
目前,我有以下补充,直到我发现:
private void RefreshReports(string strReportTitle)
{
_lstReportRecords = _lstReportRecords.Where(rr => rr.Description != strReportTitle).ToList<ReportRecord>();
string strColumn = iniFile.GetString(strReportTitle, "Column", "");
if (strColumn != null)
{
_lstReportRecords.AddRange(_dataController.BuildReportList(strColumn, strReportTitle, GetReportSQL(strReportTitle)));
}
else
{
switch (strReportTitle)
{
case "Improper Indenture":
_lstReportRecords.AddRange(_dataController.ImproperIndenture());
break;
case "Skipping Figure":
_lstReportRecords.AddRange(_dataController.SkippingFigure());
break;
default: break;
}
}
FormatCells();
}
Run Code Online (Sandbox Code Playgroud)
感谢大家.
编辑:对不起伙计们,看着那些东西老老实实让我感到愚蠢.就像,我的思绪一片空白,一切都无法集中精力.:)你们提供的可能是最好的方法,但是因为我必须在星期二之前准备好一个高质量的演示,并且在此之前不应该再添加任何需要功能的报告,我将保持开放.一旦我的老板出城去演示它,我就会努力实现它.但是现在,除非我看到一个非常非常(2岁)的例子,否则它将无法回答.
我想在我的ASP.NET MVC 2应用程序中使用NHibernate的Contextual Sessions,但是我很难找到如何正确执行此操作的指导.
我对每个请求的Session感兴趣.
嗨任何人可以请解释我为什么是这样的代码片段给我的StackOverflowError我很感激,如果你能解释发生了什么事时,instanceObj初始化和调用构造函数ObjectTest和java.lang.Object继承构造函数.在我看来ObjectTest构造函数循环一遍又一遍.但我不知道确切的原因?所以任何建议......
public class ObjectTest {
public ObjectTest() {
}
ObjectTest instanceObj = new ObjectTest();
public static void main(String[] args) {
ObjectTest localObj = new ObjectTest();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个UIView子类("GradientView"),它将用各种颜色的渐变填充自己.我通过添加CAGradientLayer作为UIView层的子层来实现它.
它看起来不错,但是当屏幕旋转时,它没有调整渐变层的大小.有没有运气的层上找到一个布尔属性来进行切换,我推翻在GradientView layoutSubviews.
-(void)layoutSubviews {
self.gradientLayer.frame = self.bounds;
}
Run Code Online (Sandbox Code Playgroud)
这很有效,但在设备旋转动画期间,GradientView背后的东西仍然可见.什么是"自动调整大小",这样的动画是光滑的(像UIView的自动尺寸),其CAGradientLayer匹配其父层的边界的最简单的方法?