我玩弄一些提升容器,但最近,我封鎖,因爲我似乎無法multi_index_container的正確定義。我下面的一個例子,我下線抓住,但它仍然給了我和錯誤消息:故障定義的multi_index_container ordered_non_unique
struct boost::multi_index::global_fun<const node&, int, <error-constant>>
Error: Expression must have a constant value
這裏是我的聲明:
#define _CRT_SECURE_NO_DEPRECATE
#define _SCL_SECURE_NO_DEPRECATE
#include <boost/config.hpp>
#include <string>
#include <iostream>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/key_extractors.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/global_fun.hpp>
#include <boost/multi_index/ordered_index.hpp>
using namespace boost::multi_index;
struct node
{
node(std::string da, int in) {
data = da;
numerical = in;
};
std::string data;
int numerical;
};
int main()
{
typedef multi_index_container<
node,
indexed_by<
hashed_unique<
member<node,std::string, &node::data>>,
ordered_non_unique<
global_fun<const node&, int, node::numerical>> //right here, the value numerical errors
>
> node_type;
}
我有一種預感,我不包括文件這,但我找不到解決方案。
'node :: numerical'顯然不是一個全局函數,而是一個成員。你在想什麼? – pmr 2013-05-14 14:14:44