void AddFloat(float F);
void AddDouble(double D);
void AddString(const std::string &String);
+ void AddString(const char* String);
template <typename T>
inline void Add(const T& x) { FoldingSetTrait<T>::Profile(x, *this); }
template<class T>
class FoldingSetIterator : public FoldingSetIteratorImpl {
public:
- FoldingSetIterator(void **Bucket) : FoldingSetIteratorImpl(Bucket) {}
+ explicit FoldingSetIterator(void **Bucket) : FoldingSetIteratorImpl(Bucket) {}
T &operator*() const {
return *static_cast<T*>(NodePtr);
protected:
void *Ptr;
- FoldingSetBucketIteratorImpl(void **Bucket);
+ explicit FoldingSetBucketIteratorImpl(void **Bucket);
FoldingSetBucketIteratorImpl(void **Bucket, bool)
- : Ptr(reinterpret_cast<void*>(Bucket)) {}
+ : Ptr(Bucket) {}
void advance() {
void *Probe = static_cast<FoldingSetNode*>(Ptr)->getNextInBucket();
template<class T>
class FoldingSetBucketIterator : public FoldingSetBucketIteratorImpl {
public:
- FoldingSetBucketIterator(void **Bucket) :
+ explicit FoldingSetBucketIterator(void **Bucket) :
FoldingSetBucketIteratorImpl(Bucket) {}
FoldingSetBucketIterator(void **Bucket, bool) :
class FoldingSetNodeWrapper : public FoldingSetNode {
T data;
public:
- FoldingSetNodeWrapper(const T& x) : data(x) {}
+ explicit FoldingSetNodeWrapper(const T& x) : data(x) {}
virtual ~FoldingSetNodeWrapper() {}
template<typename A1>