我的代码看起来像这样:
class Node : public bitset<BITS_COUNT> {
public:
Node(string s) : bitset<BITS_COUNT>(s) {}
void setGroup(unordered_set<Node>* newSet) { currentGroup = newSet; }
unordered_set<Node>* getCurrentSet() { return currentGroup; }
private:
unordered_set<Node>* currentGroup = nullptr;
};
但是编译器不允许我这样做,因为没有为类Node定义散列函数。我希望它能从基类中使用哈希函数,所以我这样做了:
namespace std
{
template<>
struct hash<Node>
{
size_t operator()(const Node& k) const
{
return k.hash();
}
};
}
但它仍然无效。如果我在Node delcaration之前放置它,k.hash()是未定义的(并且我无法转发声明Node:public bitset&lt;&gt;因为它不可能)。如果我把这个后类声明放进去,我会得到错误,即类Node没有散列函数。
我该如何解决这个问题?
答案 0 :(得分:0)
谢谢Frank,您的评论实际上是我的解决方案。如果有人需要代码,它看起来像这样:
beforeShowDay: tratarDiasEspeciales,
function tratarDiasEspeciales(date){
ajax call to decide the colour of the cell
if(condition){
//colour the day with blue
return[true,'blue']
}else{
//colour the day with red
return[true,'red']
}
}