小编Mai*_*ein的帖子

ndb.gql vs ndb.query - Google App Engine

https://developers.google.com/appengine/docs/python/ndb/

https://developers.google.com/appengine/docs/python/ndb/queries

ndb.gql和ndb.query之间有区别吗?(旁边的语法)

例如

cursor = ndb.gql("select * from Account")
Run Code Online (Sandbox Code Playgroud)

VS

cursor = Account.query()
Run Code Online (Sandbox Code Playgroud)

因为我喜欢ndb.query,因为我觉得它更具可读性

例: acc=Account.query(Account.username==form.username.data,Account.password==form.password.data)

如果这两种方法在引擎盖下不同/相等,我找不到任何信息.

=>也许有性能权衡?

如果您习惯使用SQL,请注意使用GQL时的错误假设.GQL被翻译为NDB的本机查询API.这与典型的对象关系映射器(如SQLAlchemy或Django的数据库支持)不同,API调用在传输到数据库服务器之前会被转换为SQL.GQL不支持数据存储修改(插入,删除或更新); 它只支持查询.

我想ndb.query应该"更快",因为它不需要被正确翻译?

python sql google-app-engine gql

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

Playframework - Eclipse无法检测到新模板

可能重复:
如何使Eclipse看到Play中的更改!编译模板?

我正在玩Play的第一步!框架和我遇到了一些问题.我可以毫无问题地创建和实现项目.

现在,如果我添加一个新视图,例如'sometest.scala.html',我尝试在'Application'中使用它,Eclipse会将此文件标记为错误.

package controllers;

import play.*;
import play.mvc.*;


import views.html.*;;

public class Application extends Controller {



public static Result index() {
    return ok(sometest.render("test"));  // this line is marked red
  }

}
Run Code Online (Sandbox Code Playgroud)

Eclipse标记为红色,即使它有效.如果我去localhost:9000,我可以看到我的变化.

我的视图文件夹如下所示:

app
--views
----index.scala.html
----main.scala.html
----sometest.scala.html
Run Code Online (Sandbox Code Playgroud)

我创建了sometest作为html文件,并将文件名设置为.scala.html

简单方案:

运行你的应用程序

$ cd myapp
$ play
$ run
Run Code Online (Sandbox Code Playgroud)

转到你的webrwoser并输入:localhost:9000

在views文件夹中创建一个新的.scala.html文件.

刷新您的网站localhost:9000

完成.

java eclipse playframework-2.0

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

sizeof() 是否显示 C++ 类开销?

#include <iostream>
using namespace std;

class Test {
    int a;
public:
    int getA() {
        return a;
    }

Test(): a(1){}
Test(int i): a(i){}

};



int main() {
    Test t1(100);
    cout << sizeof(t1) << " " << sizeof(1) << endl; // 4 4
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

似乎 C++ 中的类根本没有开销。t1 的大小为 4,就像一个整数。如果我向 Test 添加另一个 int 成员,它会将其大小增加到 8。

我会期望大于 4 的东西

课程没有开销是真的吗?

c++

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

OpenSG 和 OpenSceneGraph 的区别

首先,我阅读了官方比较OpenSGOpenSceneGraph。我目前的目标是创建一个用于学习目的的小型游戏引擎。我从纯 OpenGL 开始,但后来我发现了那些看起来很不错的场景图库。

我想知道这两个场景图之间的区别。他们的比较非常模糊。例如,OSG 表示 OpenSG 在多线程方面可能更好。

OpenSG 声明,我引用

OpenScenegraph 一开始就严重依赖于 Performer 方面...... OpenSG 更倾向于 Fahrenheit 方面......这些天,为了你的自身利益,你应该使用像 OpenSG 这样的开源系统。

我想知道 OpenSG 和 OpenSceneGraph 之间的区别。

openscenegraph opensg

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

是否有场景图的替代品?

场景图使您可以推断其位置 - >如果不需要渲染一个节点,则不需要渲染该节点的子节点.

但是,如果场景中的物体不断改变位置,它似乎可能不是最佳方法,因此您总是需要更新场景图.

我想知道是否有一种完全不同的降低场景复杂度的方法?

opengl directx scenegraph graphic scene

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

使用std c ++ 11智能指针转换为非标量类型

我目前正在使用openscenegraph,它使用自己的智能指针.但我想使用std c ++ 11智能指针.

现在这是工作示例代码

osg::ref_ptr<osg::Uniform> SineUniform   =  new osg::Uniform( "Sine", 0.0f );
Run Code Online (Sandbox Code Playgroud)

但是当我做这样的事情

std::unique_ptr<osg::Uniform> SineUniform   =  new osg::Uniform( "Sine", 0.0f );
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误消息

错误:从'osg :: Uniform*'转换为请求的非标量类型'std :: unique_ptr'

知道发生了什么事吗?对智能指针有一些要求吗?

c++ openscenegraph unique-ptr c++11

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

通过构造函数初始化unique_ptr

class BaseShader {
        std::unique_ptr<HandleInterface> handle_;
    public:
        BaseShader();
        BaseShader(std::unique_ptr<HandleInterface> handle_ptr);
Run Code Online (Sandbox Code Playgroud)

的.cpp

BaseShader::BaseShader(std::unique_ptr<HandleInterface> handle_ptr) {
    handle_.reset(handle_ptr.get());
}
//BaseHandle implements HandleInterface
BaseShader::BaseShader():BaseShader(std::make_shared<BaseHandle>()) {
}
Run Code Online (Sandbox Code Playgroud)

我如何handle_正确初始化unique_ptr ?

我想像这样使用它 BaseShader s(std::make_shared<BaseHandle>());

克朗告诉我

error: no matching constructor for initialization of 'BaseShader'
BaseShader::BaseShader():BaseShader(std::make_shared<BaseHandle>()) {
                         ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

我可能搞砸了.

1.)我的构造函数参数是否正确? BaseShader::BaseShader(std::unique_ptr<HandleInterface> handle_ptr)

2.)如果1.)为true是handle_.reset(handle_ptr.get());正确的初始化handle_ unique_ptr的方法吗?

c++ c++11

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

了解unix sys/select.h中的fd_set

我不是很精通C,但我有Java,C#,Python,Rust等经验.我目前正在尝试在Rust中包装fd_set,但我完全不知道如何阅读这段代码.

我只对这部分感兴趣:

typedef struct
  {
    /* XPG4.2 requires this member name.  Otherwise avoid the name
       from the global namespace.  */
#ifdef __USE_XOPEN
    __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else
    __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
  } fd_set;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我明白这__fd_mask只是一个长期的int.__NFDBITS只是给我一个long int的大小并将它乘以8.

但我不知道这是做什么的#define FD_SETSIZE __FD_SETSIZE,因为我不知道这是做什么_fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];对我来说FD_SETSIZE没有任何价值.我完全不知道# define __FDS_BITS(set) ((set)->__fds_bits)在做什么.

我真的很想看看这个代码在java或c#等中的样子

完整的头文件:

/* `fd_set' type and related macros, and `select'/`pselect' declarations.
   Copyright (C) 1996-2003, 2009, …
Run Code Online (Sandbox Code Playgroud)

c unix

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

类型同义词的自动类型构造函数

我有一个叫做的类型Vec2F,我可以像这样使用它Vec2F 0.0 0.0.但我想制作自己的类型

type Direction = Vec2F

但后来我做不到Direction 0.0 0.0,我必须定义一个有点麻烦的新功能.

direction :: Float -> Float -> Vec2F
direction = Vec2F

我有什么替代品?

haskell

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

输入静态方法的约束

我正在使用OpenTK及其数学库,但不幸的是,矢量类没有通用接口.例如,Vector2,3和4都具有相同的静态方法SizeInBytes http://www.opentk.com/files/doc/struct_open_t_k_1_1_vector3.html#ae7cbee02af524095ee72226d842c6892

现在我可以重载大量不同的构造函数,但我认为应该可以通过类型约束来解决这个问题.

我正在阅读http://msdn.microsoft.com/en-us/library/dd233203.aspx,我发现了这个

type Class4<'T when 'T : (static member staticMethod1 : unit -> 'T) > =
    class end
Run Code Online (Sandbox Code Playgroud)

现在我自己尝试了但是我无法正确使用语法.

type Foo<'T when 'T: (static member SizeInBytes: unit -> int)>(data: 'T []) =
   member this.GetBytes() = 'T.SizeInBytes() 

let f = Foo([|new Vector3(1.0f,1.0f,1.0f)|])
f.GetBytes()
Run Code Online (Sandbox Code Playgroud)

你能发现问题吗?

编辑:VS2012抱怨这条线'T.SizeInBytes() //Unexpected symbol or expression,T.SizeInBytes()也不起作用.

EDIT2:

我做了一个不涉及外部库的例子

type Bar() = 
    static member Print() = printf "Hello Foo"

type Foo<'T when 'T: (static member Print: unit -> unit)>(data: 'T …
Run Code Online (Sandbox Code Playgroud)

f#

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