Quelltext /~heha/-geheim/multiser.zip/comsel.h

#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);
};
Vorgefundene Kodierung: ASCII (7 bit)2