📄 warargs.cpp
字号:
#include "StdAfx.h"#include "WarArgs.h" // class implemented/////////////////////////////// PUBLIC ///////////////////////////////////////WAR_CPPT_IMPL WarArgs<char>;WAR_CPPT_IMPL WarArgs<wchar_t>;WAR_CPPTF_IMPL WarArgs<char>& operator << (WarArgs<char>& to, const char *from);WAR_CPPTF_IMPL WarArgs<wchar_t>& operator << (WarArgs<wchar_t>& to, const wchar_t *from);template <class charT>WarArgs<charT>& operator << (WarArgs<charT>& to, const charT *from){ std::basic_string<charT> buf; const charT *p = from; if (p) do { buf.erase(); while(*p) { if (isspace(*p)) { if (to.mArgMode) { static const charT cmp_var[] = {'-', '-', '\0'}; if ((buf.size() > 1) && (buf[0] == '-') && ((isalpha(buf[2]) || !memcmp(buf.c_str(), cmp_var, 3 * sizeof(charT))))) // == "--" goto break_up; } else {break_up: while(isspace(*p)) ++p; break; } } buf += *p++; } if (!buf.empty()) to.Add(buf.c_str()); } while(*p); return to;}//============================= LIFECYCLE ====================================template <class charT>WarArgs<charT>::WarArgs<charT>(void): mArgMode(false){}template <class charT>WarArgs<charT>::~WarArgs<charT>(void){ for(size_t i = 0; i < mArgs.size(); i++) { delete mArgs[i]; mArgs[i] = NULL; }}//============================= OPERATORS ====================================//============================= OPERATIONS ===================================template <class charT>void WarArgs<charT>::Add(const charT *arg){ const charT *p = arg; size_t lenght = 0; while(*p) { ++p; ++lenght; } charT *buffer = new charT[lenght +1]; if (lenght) memcpy(buffer, arg, lenght); buffer[lenght] = 0; mArgs.push_back(buffer);}//============================= CALLBACK ===================================//============================= ACCESS ===================================template <class charT>int WarArgs<charT>::GetArgc() const{ return mArgs.size();}template <class charT>charT **WarArgs<charT>::GetArgv(){ return &mArgs[0];}//============================= INQUIRY ===================================/////////////////////////////// PROTECTED ////////////////////////////////////////////////////////////////// PRIVATE ///////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -