1

I am looking at the node.js documentation for making a module. http://nodejs.org/api/addons.html

I understand template functions and template classes such as

template <class T>
void MyTemplateFunction(T a) 
{
    a.doSomething();
}

...

MyObj mo;
MyTemplateFunction <MyObj>(mo);

This code looks a little but like a template but I have never it before:

void init(Handle<Object> exports) {
    // what is <Object>?
}

Newest 5 per group with fulltext search

I have some table more than 300,000 records, the table structure:

id  |  title | source | description | date | fullindex

id is PRIMARY key, date has added index, source has added index, fullindex has added full-text index.

Now I want to make a query. newest 5 per group with fulltext search.

I have tried

SELECT 'a' as t_name,id,title,source,description,date,fullindex 
FROM table1 a1
WHERE MATCH (fullindex) AGAINST ('+bool' IN BOOLEAN MODE)
and 6>(select count(*) from table1 where source=a1.source and date>a1.date)

but this query would cost 6.5987s, the affection is very low.

So how to make a quicker query?

PS: I have searched mysql greatest n per group in google, but with my limited skill, I did not make a better code for myself, waiting some mysql master for a help.

4

3 に答える 3

3

おそらく、Handle単一の型パラメーターを持つクラス テンプレートです。

template <typename T> class Handle;

そしておそらくObjectタイプです。

これにより、テンプレート引数としてHandle使用してクラス テンプレートがインスタンス化され、クラスが提供されます。Objectあなたの例がMyTemplateFunction関数テンプレートをインスタンス化MyObjし、テンプレート引数として使用して関数を与えるのと同じように。

于 2013-05-15T16:44:32.120 に答える
2

Handle<Object>テンプレートクラスの仕様です(上記のテンプレート関数とは対照的です)。の宣言がある

template <class T>
class Handle {
    ...
};

コードのどこか、またはインクルードしたヘッダー ファイルの 1 つにあります。本質的には、テンプレートのコード全体をに置き換えることによりHandle<Object>、テンプレートを使用して作成されたクラスです。HandleTObject

于 2013-05-15T16:42:36.253 に答える
1

基本的には同じです: exportsは typeHandle<Object>であると宣言されHandleており、クラス テンプレートは 1 つの (ほとんどの場合) 型引数を取ります。おそらく次のように宣言されています。

template<typename T>
class Handle{...};
于 2013-05-15T16:44:16.060 に答える