| Jon Stewart on Wed, 2 Mar 2005 23:39:48 -0600 (CST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| [ALACPP] the pleasure of counting |
#include <iostream>
template<int N> struct Int2Type {
enum {
value = N
};
operator int() const { return N; }
};
typedef struct { char a[20]; } RT2;
char defined(int);
template <int N, int LINE, bool b> struct Counter;
template <int N, int LINE> struct Counter<N, LINE, false> {
enum { value = N-1 };
};
template <int N, int LINE> struct Counter<N, LINE, true> {
enum { value = Counter< N+1, LINE,
(sizeof(defined(Int2Type<N>())) != sizeof(char)) >::value };
};
RT2 defined(Int2Type< Counter< 0, (int)(__LINE__), true >::value >);
RT2 defined(Int2Type< Counter< 0, (int)(__LINE__), true >::value >);
struct STFU {
enum {
value = __LINE__
};
};
int main(int, char *[]) {
std::cout << Counter<0, STFU::value, true>::value << std::endl;
return 0;
}
--
Jon Stewart
stew1@xxxxxxxxxxx
_______________________________________________
alacpp mailing list
alacpp@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/alacpp