我正在使用boost 1.37,我正在尝试使用boost :: ptr_vector,并转移它的所有权,以便我可以从函数返回它.查看boost文档(http://www.boost.org/doc/libs/1_36_0/libs/ptr_container/doc/tutorial.html#new-functions)
std::auto_ptr< boost::ptr_deque<animal> > get_zoo()
{
boost::ptr_deque<animal> result;
...
return result.release(); // give up ownership
}
...
boost::ptr_deque<animal> animals = get_zoo();
Run Code Online (Sandbox Code Playgroud)
我试过了:
#include "iostream"
#include <boost/ptr_container/ptr_vector.hpp>
class Item
{
public:
int my_val;
Item() : my_val(0) { }
};
class MyClass
{
private:
boost::ptr_vector<Item> items_;
public:
MyClass()
{
for (int i = 0; i < 10; ++i)
items_.push_back(new Item);
}
std::auto_ptr<boost::ptr_vector<Item> > getData() { return items_.release(); }
};
int totalItems(boost::ptr_vector<Item> items)
{
int total = 0; …Run Code Online (Sandbox Code Playgroud) 我一直在玩两个不错的基于PHP的ORM.OutletORM和phpDataMapper.
有人有经验吗?一个优于另一个的任何优点.问一个拥有更大用户群的问题也是一个很好的问题.
我正在使用mr.developer来跟踪github上的一些包.当我重新运行我的构建时,我得到:
包'django-quoteme'很脏.
你想要更新它吗?[是/否/全部] y
什么是"脏"究竟是什么意思?
我有一种情况,我想比较一个shared_ptr封装的对象与堆栈上创建的相同类型的对象.目前,我正在获取原始指针并取消引用它来进行比较,例如:
Object A;
std::shared_ptr<Object> B;
// assume class Object has its comparison operators overloaded
if ( *B.get() < A )
// do stuff here
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?这假设当两个对象相遇以便相互比较时,一个是shared_ptr而另一个不是.
我真的很喜欢与Django和Python一起工作,当我回到PHP时,我感到受限制了。。。我尝试了Zend / Kohana / CodeIgniter / CakePHP,但没有一个真的那么好...
有谁知道受Django影响很大的php框架?或至少是模板系统?
有没有人知道使用类似SQL的声明性查询语言提供简单,快速的平面文件查询的工具?我宁愿不支付将文件加载到DB中的开销,因为输入数据通常在查询运行后几乎立即被抛出.
考虑数据文件"animals.txt":
dog 15
cat 20
dog 10
cat 30
dog 5
cat 40
Run Code Online (Sandbox Code Playgroud)
假设我想为每个独特的动物提取最高值.我想写一些类似的东西:
cat animals.txt | foo "select $1, max(convert($2 using decimal)) group by $1"
Run Code Online (Sandbox Code Playgroud)
我可以得到几乎相同的结果sort:
cat animals.txt | sort -t " " -k1,1 -k2,2nr
Run Code Online (Sandbox Code Playgroud)
而且我总是可以awk从那里进入,但是awk当一种类似SQL的语言看起来如此干净地解决问题时,这一切都感觉有些困难(无法抗拒).
我已经考虑为SQLite编写一个包装器,它会根据输入数据自动创建一个表,我已经研究过在单处理器模式下使用Hive,但我不禁感到这个问题以前已经解决了.我错过了什么吗?此功能是否已由另一个标准工具实现?
HALP!
如何动态绑定jqGrid?这些列在设计时不可用,但仅在运行时可用.
在当前的jqGrid设计中,需要预先填充colmodel和其他属性,以使网格正常工作.
非常感谢在这个方向上的任何输入.
我使用VFPOLEDB驱动程序读取DBF文件,我不断收到此错误,我不知道为什么以及如何解决问题:
提供程序无法确定Decimal值.例如,刚刚创建了行,Decimal列的默认值不可用,并且消费者尚未设置新的Decimal值.
这是代码.我调用此例程来返回DBF文件的DataSet并在DataGridView中显示数据.
public DataSet GetDBFData(FileInfo fi, string tbl)
{
using (OleDbConnection conn = new OleDbConnection(
@"Provider=VFPOLEDB.1;Data Source=" + fi.DirectoryName + ";"))
{
conn.Open();
string command = "SELECT * FROM " + tbl;
OleDbDataAdapter da = new OleDbDataAdapter(command, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
Run Code Online (Sandbox Code Playgroud) 所以我正在尝试动态加载脚本并找出加载该脚本的URL路径.如果脚本是静态加载的(如何获取当前正在执行的javascript代码的文件路径),有些人给了我一个非常棒的解决方案来解决这个问题.但我需要一个动态加载的解决方案.例如:
$(function()
{ $.getScript("brilliant.js", function(data, textStatus)
{ // do nothing
});
});
Run Code Online (Sandbox Code Playgroud)
"brilliant.js"在哪里:
var scripts = document.getElementsByTagName("script");
var src = scripts[scripts.length-1].src;
alert("THIS IS: "+src);
Run Code Online (Sandbox Code Playgroud)
理想情况下,这应该打印出"brilliant.js"或"⟨hostname+basepath⟩/ brilliant.js"
目前,brilliant.js适用于静态包含的脚本,但不适用于动态包含的脚本(如$ .getScript).有人有主意吗?dom中是否存储了所有已加载的脚本?
编辑:Andras提供了一个非常好的解决方案,虽然它可能只适用于jQuery.因为这可能是最受欢迎的图书馆,而且我肯定会使用它.它也可以扩展到其他库.这是我的简化版本:
var scriptUri;
curScriptUrl(function(x)
{ scriptUri = x;
alert(scriptUri);
});
function curScriptUrl(callback)
{ var scripts = document.getElementsByTagName("script");
var scriptURI = scripts[scripts.length-1].src;
if(scriptURI != "") // static include
{ callback(scriptURI);
}else if($ != undefined) // jQuery ajax
{ $(document).ajaxSuccess(function(e, xhr, s)
{ callback(s.url);
});
}
}
Run Code Online (Sandbox Code Playgroud) 想象一下,你想编写一个在c ++ dll文件中测试函数的程序.您应该让用户选择一个DLL(我们假设我们正在谈论c ++ dll).他应该能够获得由dll导出的所有函数的列表.然后,用户应该能够从列表中选择一个函数名,手动输入一个参数列表(参数都是基本类型,如int,double,bool或char数组(例如c-type字符串))并尝试使用指定的参数运行所选函数.他想知道函数是否使用指定的参数运行,或者是否导致它崩溃(因为它们与签名不匹配).
主要问题是C++是一种强类型语言,需要你在编译时知道函数调用的参数的数量和类型.在我的例子中,我根本不知道这些参数是什么,直到用户在运行时选择它们.
我想出的唯一解决方案是使用程序集手动推送调用堆栈上的参数.
但是,我已经明白,如果我想搞乱程序集,我最好确定我知道哪个调用约定是dll中使用的函数.
所以(最后:)这是我的问题:我可以推断出programmaticaly的调用约定吗?Dependency Walker不会帮助我,我也不知道如何手动读取PE格式.