问题列表 - 第47114页

将泛型类型的成员转换为TObject?

我目前正在考虑一个场景,我想要一个调用Free其项目的泛型类,如果它们是一个对象类型.所以我尝试了以下方法:

if (PTypeInfo (TypeInfo (T)).Kind = tkClass) then
  begin
  RttiType := RttiContext.GetType (TypeInfo (T));
  FreeMethod := RttiType.GetMethod ('Free');
  if (FreeMethod <> nil) then
    FreeMethod.Invoke (FInstance, []);
  end;
Run Code Online (Sandbox Code Playgroud)

不幸的是,最后一行没有编译,这并不奇怪,因为类型不匹配.问题是:我可以编译吗?我尝试了转换Pointer然后转到TObject但是这给了我一个无效的类型转换错误.有没有办法FInstance : T进入TObject我可以传递给的参考Invoke

或者有没有其他方法来实现我想要的?请注意,重点是获取此类中的所有内容,因此我不想创建TObjectMyClass只接受对象的内容.

谢谢你的帮助.

delphi generics casting delphi-2010

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

迭代器和模板

我正在尝试实现一个允许用户输入某种类型的开始和结束迭代器的函数,然后所有函数都对数据执行一些操作.然而,该功能必须足够通用的,应该对很多类型的迭代工作(例如std::vector::iterator,std::string::iterator,std::iterator等).唯一的限制是迭代器必须至少是forward_iterator_tag功能.

我的函数原型看起来像这样:

template <class key_type, class data_type> std::shared_ptr<data_type> 
    remove(std::iterator<std::forward_iterator_tag, key_type> key_start, 
    std::iterator<std::forward_iterator_tag, key_type> key_end);
Run Code Online (Sandbox Code Playgroud)

但是,这限制了我特别使用forward_iterator_tag迭代器,因此尝试调用这样的函数:

remove<char, char>(std::iterator<std::random_access_iterator_tag, char>(), std::iterator<std::random_access_iterator_tag, char());
Run Code Online (Sandbox Code Playgroud)

将失败,因为编译器无法将a转换std::iterator<std::random_access_iterator_tag,...>为a std::iterator<std::forward_access_iterator_tag,...>.此外,此方法不适用于字符串迭代器,矢量迭代器或其他stl迭代器.

有人知道stl如何实现容器/字符串以接受彼此的迭代器吗?例如,这正确编译:

std::string a = "hello";
std::vector<char> v(a.begin(), a.end());
Run Code Online (Sandbox Code Playgroud)

c++ templates iterator stl

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

如何安装jTDS?

FAQ中写道:“只需将jar文件放入应用程序的类路径中”

那是什么意思?

我正在使用Eclipse

java jdbc

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

SQL和LDAP之间的区别

我已经使用了SQL和LDAP,但在最近与我的一个同行的对话中,我意识到可能还有更多内容.并且有时考虑LDAP over SQL可能是有益的.

所以我的挑战/要求/问题:你能解释一下LDAP在电梯中的优势(和缺点)吗?也就是说,短暂的2-3分钟演示.

sql ldap

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

替代jquery .inarray?

我喜欢inarray,搜索没有循环的数组,但它只做精确/精确匹配,如果我使用.match,我可以做部分匹配,但这需要一个循环.

有没有办法搜索数组的部分匹配,没有循环?

如果在第1个中找到部分或完全匹配,则有2个数组,1个要搜索,第2个替换文本/值.

目标是以最快的方式搜索阵列以进行部分或完全匹配.

有什么建议?

javascript arrays jquery

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

如何在iPhone应用程序中实现activesync协议?

如何在iPhone应用程序中实现activesync协议?任何建议,任何文档和教程都很好.

我从apple上读过Exchange ActiveSync和iOS 4设备.这有什么真正的文档吗?

iphone objective-c activesync ios4

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

目标c,检查文件存在于路径中

我在iPhone项目中使用Objective-C创建了一个屏幕.在那里,有2个按钮(比如A和B).在单击按钮A时,将在文件夹(例如INBOX)中创建一个xml文件.

我的问题是,我只有在文件夹INBOX中不存在时才需要创建文件.我怎样才能做到这一点?任何人都可以告诉我语法吗?

iphone objective-c

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

Tcl在字符串末尾添加符号N次

如何在字符串的末尾添加N个空格,例如N =(25 - string_length)?有没有直接执行此过程的命令,或者我应该使用循环?

string tcl

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

无法将参数从char [#]转换为LPWSTR

当我在Visual C++中编译此代码时,我得到以下错误.可以帮我解决这个问题..

DWORD nBufferLength = MAX_PATH;
char szCurrentDirectory[MAX_PATH + 1];
GetCurrentDirectory(nBufferLength, szCurrentDirectory); 
szCurrentDirectory[MAX_PATH +1 ] = '\0';
Run Code Online (Sandbox Code Playgroud)

错误信息:

Error   5   error C2664: 'GetCurrentDirectoryW' : cannot convert parameter 2 from 'char [261]' to 'LPWSTR'  c:\car.cpp
Run Code Online (Sandbox Code Playgroud)

visual-c++

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

微软ILGenerator的输出文件在哪里?

我使用过Microsoft ILGenerator及其Emit成员.我想知道在哪里可以找到由它生成的输出il文件.

c# il ilgenerator

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