diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-07 11:00:34 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-07 11:00:34 +0000 |
| commit | 2881dbe025d2002fc5260969cd0c402404713ebc (patch) | |
| tree | 4d30de40e909a9c9e9f3d2bdb0ad2748afc35922 /src/array_fun.h | |
| parent | bbb3589293139db527cf72f0a30e989fc2889a53 (diff) | |
2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added OptionParser::parseArg() which internally uses getopt_long
to parse command-line options. All command-line options are now
configured by OptionHandler. No manual editing of struct option*
is required any more.
* src/NameMatchOptionHandler.h
* src/OptionHandler.h
* src/OptionHandlerFactory.cc
* src/OptionHandlerImpl.h
* src/OptionParser.cc
* src/OptionParser.h
* src/array_fun.h
* src/main.cc
* src/option_processing.cc
* test/OptionHandlerTest.cc
* test/OptionParserTest.cc
Diffstat (limited to 'src/array_fun.h')
| -rw-r--r-- | src/array_fun.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/array_fun.h b/src/array_fun.h index ccf837a0..0c2327f4 100644 --- a/src/array_fun.h +++ b/src/array_fun.h @@ -215,6 +215,43 @@ size_t arrayLength(T (&a)[0u]) return 0; } +template<typename T> +class array_ptr { +private: + T* _array; + + // Copies are not allowed. Let's make them private. + array_ptr(const array_ptr& s); + + template<typename S> + array_ptr(const array_ptr<S>& s); + + array_ptr& operator=(const array_ptr& s); + + template<typename S> + array_ptr& operator=(const array_ptr<S>& s); + +public: + array_ptr():_array(0) {} + + explicit array_ptr(T* array):_array(array) {} + + ~array_ptr() + { + delete [] _array; + } + + T& operator[](size_t index) + { + return _array[index]; + } + + const T& operator[](size_t index) const + { + return _array[index]; + } +}; + } // namespace aria2 #endif // _D_ARRAY_FUN_H_ |
