小编JnB*_*ymn的帖子

C++:创建模板化的Shared <T>对象而不是shared_ptr <T>对象

根据我之前的问题,我希望a boost::shared_ptr<A>实际上是A(或许是A*)的子类,以便它可以用在A*作为参数的方法中.

考虑以下课程:

class A
{
public:
    A(int x) {mX = x;}
    virtual void setX(int x) {mX = x;}
    virtual int getX() const {return mX;}
private:
    int mX;
};
Run Code Online (Sandbox Code Playgroud)

在上一个问题中,我提议创建一个SharedA对象来处理这个问题,并且可能是这样做的.

class SharedA : public A
{
public:
    SharedA(A* a) : mImpl(a){}
    virtual void setX(int x) {mImpl->setX(x);}
    virtual int getX() const {return mImpl->getX();}
private:
    boost::shared_ptr<A> mImpl;
};
Run Code Online (Sandbox Code Playgroud)

如果我可以创建一个模板类来为我处理所有这些问题,那将是Grrrrrrrrreat想的.

template <class T>
class Shared : public T
{
public:
    SharedT(T* t) : mImpl(t) …
Run Code Online (Sandbox Code Playgroud)

c++ pimpl-idiom shared-ptr

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

为什么将Django模板存储在相关应用程序中是不明智的?

根据这个问题的获胜答案以及我在互联网上阅读的其他内容,你最有可能将Django模板mySubAppX放在一个文件夹之外mySubAppX- 最常见的myProject/templates/mySubAppX是模板是一个兄弟到实际mySubAppX目录的目录.应用程序存储.

为什么?特别是当您将子应用程序设为模块化时为什么?

django templates project-organization django-templates

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

学习C:奇怪的代码,它做了什么?

我正在探索wxWidgets,同时学习C/C++.通常wxWidgets函数期望wxString而不是a string,因此wxWidgets 为创建s 提供了一个宏wxT(yourString.我的问题涉及这个宏观的扩展.如果键入扩展的宏读取.这在C中有什么意义?L是一个用参数"banana"调用的函数吗?)wxStringwxT("banana")L"banana"

c macros

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

保持LINQ-to-SQL DataContext打开多长时间?

我是linq-to-sql的新手(也就是sql),我已经开始收集证据证明我可能没有以正确的方式做事,所以我想看看你们都要说些什么.

在我的员工分配应用程序中,我允许用户在员工和项目之间创建分配.在应用程序开始时,我打开了一个linq-to-sql数据上下文到我的管理数据库.在整个计划中,我从不放弃数据上下文.事实上,大多数表单构造函数都将此数据上下文作为其参数之一.

我有点认为这是做事的方式,直到我读到另一个SO问题,其中提问者正在讨论在整个程序中重复地重新创建数据上下文,然后根据需要将实体"附加"到新的数据上下文中.这可以帮助我解决我遇到的问题,其中的东西"潜入"我的数据库.

那么你会在哪里使用第一种风格(并且不要羞于说永远),你会在哪里使用第二种风格?

linq-to-sql

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

简单的C++写入文件在Mac OS X App中不起作用 - 为什么?(为什么是我?)

代码很简单:

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char* argv[] )
{
    std::ofstream theStream;
    theStream.open("trash.txt");
    theStream << "some words" << std::endl;
    theStream.close();
}
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行它,那么我在同一目录中获取预期的文件.如果一个包在MacOS .app中的可执行文件的内容,那么没有文件写在任何地方.(或许它只是被及时删除?)

这是我用来将可执行文件放入.app的简单脚本.也许这就是我出错的地方.

#!/bin/bash

appName=MyApp
if [ $1 ] 
then 
    appName=$1
else 
    echo "usage: convertToApp executableFile"
    exit
fi

if [ -e "$appName" ] 
then
    mkdir $appName.app
    mkdir $appName.app/Contents
    mkdir $appName.app/Contents/MacOS
    mkdir $appName.app/Contents/Resources
    cp $appName $appName.app/Contents/MacOS/$appName
    echo -n 'APPL????' > $appName.app/Contents/PkgInfo
else
    echo "specified file does not exist"
fi
Run Code Online (Sandbox Code Playgroud)

知道为什么我看不到我想看的文件吗?

c++ macos fileoutputstream

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

具有基于匹配的回调的正则表达式

我有一个函数,它接受一个输入字符串,然后通过几个正则表达式运行字符串,直到找到匹配.找到匹配后,我返回一个输出,该输出是原始字符串和匹配的函数.所以在红宝石中:

str = "my very long original string ... millions of characters"
case str
  when regex1
    do_something1(str,$1)
  when regex2
    do_something2(str,$1)
  when regex3
    do_something3(str,$1)
  ...
  when regex100000
    do_something100000(str,$1)
  else
    do_something_else(str)
end
Run Code Online (Sandbox Code Playgroud)

现在,Ruby实际上是在优化这个开关循环,以便str只被遍历一次吗?假设它不是,那么使用嵌入了回调的一个很长的正则表达式可以更有效地执行此功能.像这样的东西:

/(?<callback:do_something1>regex1)|
(?<callback:do_something2>regex2)|
(?<callback:do_something3>regex3)|
   ...
(?<callback:do_something100000>regex100000)/
Run Code Online (Sandbox Code Playgroud)

是否有任何技术可以做到这一点?

ruby regex finite-automata callback

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

是否可以确定Cypher MERGE是创建还是匹配?

考虑Neo4J 2.0 Cypher查询

MERGE (u:User {id_str:"123"}) 
  ON CREATE SET
    u.name="Bob",
  ON MATCH SET
    u.phone_num="555-4152"
RETURN u
Run Code Online (Sandbox Code Playgroud)

这是一个愚蠢的查询-不用担心这里的意图。问题是,我如何理解此查询是创建还是仅找到一个节点?

更新

也许我应该进一步激励我为什么要这种行为。原因如下:如果该节点已经存在,则不必转到远程服务器(在我的情况下为Twitter API)并下载用户的所有元数据。如果ON CREATE可以以某种方式链接回回调以拉出此数据,那就太好了。这种行为在Cypher中似乎不太可能实现。因此,大概我想做的是一个匹配,如果获取返回NULL,那么我将调出Twitter API,获取元数据并进行创建。

neo4j cypher

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

C++并返回null - 在Java中工作的东西在C++中不起作用

所以我从Java/C#转向C++相当混乱.虽然我觉得我理解了大部分的基础知识,但是在我的理解中存在一些巨大的漏洞.

例如,考虑以下功能:

Fruit&
FruitBasket::getFruitByName(std::string fruitName)
{
    std::map<std::string,Fruit>::iterator it = _fruitInTheBascit.find(fruitName);
    if(it != _fruitInTheBascit.end()) 
    {
        return (*it).second;
    }
    else
    {
           //I would so love to just return null here
    }

}
Run Code Online (Sandbox Code Playgroud)

哪里_fruitsInTheBascitstd::map<std::string,Fruit>.如果我查询getFruitByName("kumquat")你知道它不会在那里 - 谁吃金橘?但我不希望我的程序崩溃.在这些情况下应该做些什么?

PS告诉我任何其他我尚未确定的愚蠢行为.

c++ null

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

从谷歌加载jquery不起作用(对我来说)

啊,我是一个可怜的菜鸟,下面的html文件并没有提醒任何人,我的呼救声.谁知道为什么?

<html>
<head>
<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    alert('Somebody please help me.');
  });
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

Cypher:有可能找到跟我朋友一起的令人毛骨悚然的人吗?

假设我已将我自己的Twitter图形下载到Neo4J中.我想找到那些跟随我的朋友的人数量应该超出预期.更具体地说,我想找到跟随我关注的人的人,但我希望对结果进行排序,以便跟随我朋友数量最多的人排序.可能在Cypher?

neo4j cypher

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