UniversalIndentGUI 1.2.0
|
00001 // -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- 00002 00003 /****************************************************************************** 00004 * 00005 * file: ArgTraits.h 00006 * 00007 * Copyright (c) 2007, Daniel Aarno, Michael E. Smoot . 00008 * All rights reverved. 00009 * 00010 * See the file COPYING in the top directory of this distribution for 00011 * more information. 00012 * 00013 * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 00014 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00015 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00016 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00017 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00018 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00019 * DEALINGS IN THE SOFTWARE. 00020 * 00021 *****************************************************************************/ 00022 00023 // This is an internal tclap file, you should probably not have to 00024 // include this directly 00025 00026 #ifndef TCLAP_ARGTRAITS_H 00027 #define TCLAP_ARGTRAITS_H 00028 00029 namespace TCLAP { 00030 00031 // We use two empty structs to get compile type specialization 00032 // function to work 00033 00038 struct ValueLike { 00039 typedef ValueLike ValueCategory; 00040 }; 00041 00047 struct StringLike {}; 00048 00054 struct StringLikeTrait { 00055 typedef StringLike ValueCategory; 00056 }; 00057 00063 struct ValueLikeTrait { 00064 typedef ValueLike ValueCategory; 00065 }; 00066 00073 template<typename T> 00074 struct ArgTraits { 00075 typedef typename T::ValueCategory ValueCategory; 00076 //typedef ValueLike ValueCategory; 00077 }; 00078 00079 #endif 00080 00081 } // namespace