#pragma once
#include <windows.h>
#define elemof(x) (sizeof(x)/sizeof(*(x)))
#define nobreak
template<class T,size_t N,class TN=T> class fixvec{
protected:
TN fill;
T a[N];
enum{capa=N};
public:
typedef T*iterator;
typedef const T*const_iterator;
typedef T&reference;
typedef const T&const_reference;
TN size() const {return fill;}
static TN capacity() {return capa;}
reference operator[](TN i) {return a[i];}
const_reference operator[](TN i) const {return a[i];}
reference first() {return a[0];}
const_reference first() const {return a[0];}
reference last() {return a[fill-1];}
const_reference last() const {return a[fill-1];}
iterator begin() {return a;}
const_iterator begin() const {return a;}
iterator end() {return a+fill;}
const_iterator end() const {return a+fill;}
T*data() {return a;}
const T*data() const {return a;}
bool commit(TN n,bool z) {if (n>capacity()) return false; if (z && n>fill) memset(a+fill,0,(n-fill)*sizeof(T)); fill=n; return true;}
bool push_back(const T&o) {if (fill>=capa) return false; a[fill++]=o; return true;}
void clear() {commit(0,false);}
};
class Portlist:public fixvec<BYTE,10>{
public:
bool fromCommandLine(const TCHAR*);
INT_PTR dialog(HWND hwndParent=0);
};
| Detected encoding: ASCII (7 bit) | 2
|