From e269f434b1f4e81974b2c68abf84d4b64419edd4 Mon Sep 17 00:00:00 2001 From: Anton Korobeynikov Date: Tue, 13 May 2008 15:03:16 +0000 Subject: 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 --- include/llvm/ADT/StringSet.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 include/llvm/ADT/StringSet.h 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 + +namespace llvm { + + /// StringSet - A wrapper for StringMap that provides set-like + /// functionality. Only insert() and count() methods are used by my + /// code. + template + class StringSet : public llvm::StringMap { + typedef llvm::StringMap 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:: + Create(KeyStart, KeyEnd, base::getAllocator(), '+')); + } + }; +} + +#endif // LLVM_ADT_STRINGSET_H -- cgit v1.1