00001 #include <iostream>
00002 #include <vector>
00003
00004
00005 template<typename T>
00006 class Solution
00007 {
00008 public:
00009 typedef T AtomType;
00010 };
00011
00012 template<typename SOLT>
00013 class Distrib
00014 {
00015 public:
00016 typedef typename SOLT::AtomType AtomType;
00017
00018 typedef std::vector<AtomType> Matrix;
00019
00020 Matrix matrix;
00021 };
00022
00023 template<typename DT>
00024 class Sampler
00025 {
00026 public:
00027 typedef typename DT::AtomType AtomType;
00028 typedef typename Distrib<DT>::Matrix Matrix;
00029
00030 Matrix matrix;
00031 };
00032
00033 int main()
00034 {
00035 Sampler< Distrib< Solution<double> > > sampler;
00036 }
00037