diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-05-13 15:03:16 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-05-13 15:03:16 +0000 |
commit | e269f434b1f4e81974b2c68abf84d4b64419edd4 (patch) | |
tree | 751a87a103468e1436db97f54dbbeec38f6e374c | |
parent | 16db1f70b780db099972b05ec6418a3f82d46d91 (diff) | |
download | external_llvm-e269f434b1f4e81974b2c68abf84d4b64419edd4.zip external_llvm-e269f434b1f4e81974b2c68abf84d4b64419edd4.tar.gz external_llvm-e269f434b1f4e81974b2c68abf84d4b64419edd4.tar.bz2 |
Add thin layer over StringMap to form StringSet. By Mikhail Glushenkov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51048 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/ADT/StringSet.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/llvm/ADT/StringSet.h b/include/llvm/ADT/StringSet.h new file mode 100644 index 0000000..3e274f0 --- /dev/null +++ b/include/llvm/ADT/StringSet.h @@ -0,0 +1,40 @@ +//===--- StringSet.h - The LLVM Compiler Driver -----------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open +// Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// StringSet - A set-like wrapper for the StringMap. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ADT_STRINGSET_H +#define LLVM_ADT_STRINGSET_H + +#include "llvm/ADT/StringMap.h" + +#include <cassert> + +namespace llvm { + + /// StringSet - A wrapper for StringMap that provides set-like + /// functionality. Only insert() and count() methods are used by my + /// code. + template <class AllocatorTy = llvm::MallocAllocator> + class StringSet : public llvm::StringMap<char, AllocatorTy> { + typedef llvm::StringMap<char, AllocatorTy> base; + public: + void insert (const std::string& InLang) { + assert(!InLang.empty()); + const char* KeyStart = &InLang[0]; + const char* KeyEnd = KeyStart + InLang.size(); + base::insert(llvm::StringMapEntry<char>:: + Create(KeyStart, KeyEnd, base::getAllocator(), '+')); + } + }; +} + +#endif // LLVM_ADT_STRINGSET_H |