Browse Source

Adds calculation of Top(Tri-jet) invarient mass

Caleb Fangmeier 7 years ago
parent
commit
35e2603ad4
100 changed files with 5417 additions and 8233 deletions
  1. 4 0
      analysis/MiniTreeDataSet.hpp
  2. 122 66
      analysis/TTTT_Analysis.cpp
  3. 1 1
      docs/LinkDef_8hpp_source.html
  4. 4 4
      docs/MiniTreeDataSet_8hpp_source.html
  5. 3417 7600
      docs/TTTT_Analysis.html
  6. 31 28
      docs/annotated.html
  7. 83 51
      docs/api_8hpp.html
  8. 15 10
      docs/api_8hpp_source.html
  9. 24 24
      docs/classes.html
  10. 24 18
      docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4-members.html
  11. 22 22
      docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4.html
  12. 3 5
      docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.map
  13. 1 1
      docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.md5
  14. BIN
      docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.png
  15. 22 16
      docs/classfv_1_1BoundValue-members.html
  16. 13 3
      docs/classfv_1_1BoundValue.html
  17. 18 12
      docs/classfv_1_1CartProduct-members.html
  18. 22 8
      docs/classfv_1_1CartProduct.html
  19. 107 0
      docs/classfv_1_1Combinations-members.html
  20. 222 0
      docs/classfv_1_1Combinations.html
  21. 5 0
      docs/classfv_1_1Combinations__coll__graph.map
  22. 1 0
      docs/classfv_1_1Combinations__coll__graph.md5
  23. BIN
      docs/classfv_1_1Combinations__coll__graph.png
  24. 4 0
      docs/classfv_1_1Combinations__inherit__graph.map
  25. 1 0
      docs/classfv_1_1Combinations__inherit__graph.md5
  26. BIN
      docs/classfv_1_1Combinations__inherit__graph.png
  27. 3 0
      docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.map
  28. 1 0
      docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.md5
  29. BIN
      docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.png
  30. 22 16
      docs/classfv_1_1ConstantValue-members.html
  31. 13 3
      docs/classfv_1_1ConstantValue.html
  32. 10 8
      docs/classfv_1_1Container-members.html
  33. 26 19
      docs/classfv_1_1Container.html
  34. 9 8
      docs/classfv_1_1ContainerMean-members.html
  35. 15 12
      docs/classfv_1_1ContainerMean.html
  36. 1 1
      docs/classfv_1_1ContainerMean__coll__graph.map
  37. 1 1
      docs/classfv_1_1ContainerMean__coll__graph.md5
  38. BIN
      docs/classfv_1_1ContainerMean__coll__graph.png
  39. 1 1
      docs/classfv_1_1ContainerMean__inherit__graph.map
  40. 1 1
      docs/classfv_1_1ContainerMean__inherit__graph.md5
  41. BIN
      docs/classfv_1_1ContainerMean__inherit__graph.png
  42. 3 2
      docs/classfv_1_1Container__coll__graph.map
  43. 1 1
      docs/classfv_1_1Container__coll__graph.md5
  44. BIN
      docs/classfv_1_1Container__coll__graph.png
  45. 2 2
      docs/classfv_1_1Container__inherit__graph.map
  46. 1 1
      docs/classfv_1_1Container__inherit__graph.md5
  47. BIN
      docs/classfv_1_1Container__inherit__graph.png
  48. 24 18
      docs/classfv_1_1Count-members.html
  49. 13 3
      docs/classfv_1_1Count.html
  50. 105 0
      docs/classfv_1_1DeTup-members.html
  51. 199 0
      docs/classfv_1_1DeTup.html
  52. 105 0
      docs/classfv_1_1DeTupVector-members.html
  53. 199 0
      docs/classfv_1_1DeTupVector.html
  54. 5 0
      docs/classfv_1_1DeTupVector__coll__graph.map
  55. 1 0
      docs/classfv_1_1DeTupVector__coll__graph.md5
  56. BIN
      docs/classfv_1_1DeTupVector__coll__graph.png
  57. 4 0
      docs/classfv_1_1DeTupVector__inherit__graph.map
  58. 1 0
      docs/classfv_1_1DeTupVector__inherit__graph.md5
  59. BIN
      docs/classfv_1_1DeTupVector__inherit__graph.png
  60. 5 0
      docs/classfv_1_1DeTup__coll__graph.map
  61. 1 0
      docs/classfv_1_1DeTup__coll__graph.md5
  62. BIN
      docs/classfv_1_1DeTup__coll__graph.png
  63. 4 0
      docs/classfv_1_1DeTup__inherit__graph.map
  64. 1 0
      docs/classfv_1_1DeTup__inherit__graph.md5
  65. BIN
      docs/classfv_1_1DeTup__inherit__graph.png
  66. 10 5
      docs/classfv_1_1DerivedValue-members.html
  67. 14 11
      docs/classfv_1_1DerivedValue.html
  68. 21 15
      docs/classfv_1_1ElementOf-members.html
  69. 13 3
      docs/classfv_1_1ElementOf.html
  70. 23 17
      docs/classfv_1_1Filter-members.html
  71. 14 4
      docs/classfv_1_1Filter.html
  72. 5 4
      docs/classfv_1_1GenContainer-members.html
  73. 15 9
      docs/classfv_1_1GenContainer.html
  74. 12 9
      docs/classfv_1_1GenContainer__inherit__graph.map
  75. 1 1
      docs/classfv_1_1GenContainer__inherit__graph.md5
  76. BIN
      docs/classfv_1_1GenContainer__inherit__graph.png
  77. 24 18
      docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4-members.html
  78. 14 5
      docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4.html
  79. 1 2
      docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.map
  80. 1 1
      docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.md5
  81. BIN
      docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.png
  82. 23 17
      docs/classfv_1_1Max-members.html
  83. 13 3
      docs/classfv_1_1Max.html
  84. 22 16
      docs/classfv_1_1MaxIndex-members.html
  85. 13 3
      docs/classfv_1_1MaxIndex.html
  86. 23 17
      docs/classfv_1_1Mean-members.html
  87. 13 3
      docs/classfv_1_1Mean.html
  88. 23 17
      docs/classfv_1_1Min-members.html
  89. 13 3
      docs/classfv_1_1Min.html
  90. 22 16
      docs/classfv_1_1MinIndex-members.html
  91. 13 3
      docs/classfv_1_1MinIndex.html
  92. 7 1
      docs/classfv_1_1ObservedValue-members.html
  93. 16 7
      docs/classfv_1_1ObservedValue.html
  94. 22 16
      docs/classfv_1_1Pair-members.html
  95. 13 3
      docs/classfv_1_1Pair.html
  96. 22 16
      docs/classfv_1_1PointerValue-members.html
  97. 13 3
      docs/classfv_1_1PointerValue.html
  98. 22 16
      docs/classfv_1_1Range-members.html
  99. 13 3
      docs/classfv_1_1Range.html
  100. 0 0
      docs/classfv_1_1Reduce-members.html

+ 4 - 0
analysis/MiniTreeDataSet.hpp

@@ -119,6 +119,10 @@ class MiniTreeDataSet : public DataSet,
             for(auto container : containers){
                 container.second->save_as("outfile", SaveOption::ROOT);
             }
+            // Save the value names for each container to enable looking up
+            // what values are plotted
+            std::map<string,string> value_lookup = this->get_container_name_value_map();
+            gDirectory->WriteObjectAny(&value_lookup, "std::map<std::string,std::string>", "_value_lookup");
         }
 };
 #endif // minitreedataset_h

+ 122 - 66
analysis/TTTT_Analysis.cpp

@@ -101,6 +101,16 @@ void enable_branches(MiniTreeDataSet& mt){
     mt.track_branch<float>("xsec");
 }
 
+struct Jet{
+    TLorentzVector v;
+    float          b_cmva;
+    int            idx;
+    public:
+        Jet()
+          :v(),b_cmva(0),idx(0) { }
+        Jet(const TLorentzVector& v, float b_cmva, int idx)
+          :v(v),b_cmva(b_cmva),idx(idx) { }
+};
 
 void declare_values(MiniTreeDataSet& mt){
 
@@ -108,15 +118,57 @@ void declare_values(MiniTreeDataSet& mt){
     energies(lorentz_vectors("GenPart_pt", "GenPart_eta", "GenPart_phi", "GenPart_mass", "GenPart_4v"), "GenPart_energy");
     energies(lorentz_vectors("Jet_pt",     "Jet_eta",     "Jet_phi",     "Jet_mass",     "Jet_4v"    ), "Jet_energy");
 
-    auto dijet_4v = cart_product<TLorentzVector, TLorentzVector>("Jet_4v", "Jet_4v", "di-jet_4v");
+    auto& build_jets = GenFunction::register_function<std::vector<Jet>(std::vector<TLorentzVector>,std::vector<float>)>("build_jets",
+        FUNC(([](const std::vector<TLorentzVector>& vs, const std::vector<float>& b_cmvas){
+            std::vector<Jet> jets;
+            for(int i=0; i<vs.size(); i++){
+                jets.push_back(Jet(vs[i],b_cmvas[i],i));
+           }
+            return jets;
+        })));
+    auto jet_parts = fv::tuple<std::vector<TLorentzVector>,std::vector<float>>(lookup<std::vector<TLorentzVector>>("Jet_4v"), lookup<std::vector<float>>("Jet_btagCMVA"));
+    auto jets = apply(build_jets, jet_parts, "jets");
+
+    auto b_jets = filter(GenFunction::register_function<bool(Jet)>("b_jet_filter",
+        FUNC(([cut=0.0](const Jet& j){
+                return j.b_cmva > cut;
+        }))), jets, "b_jets");
 
-    auto& inv_mass = GenFunction::register_function<float(TLorentzVector, TLorentzVector)>("inv_mass",
-        FUNC(([] (const TLorentzVector& v1, const TLorentzVector& v2){
-            TLorentzVector sum = v1 + v2;
+    auto dijets = combinations<Jet,2>(jets, "dijets");
+
+    auto& w_mass_filter = GenFunction::register_function<bool(Jet, Jet)>("w_mass_filter",
+        FUNC(([win_l=W_MASS-10, win_h=W_MASS+10](const Jet& j1, const Jet& j2){
+            float inv_mass = (j1.v + j2.v).M();
+            return inv_mass > win_l && inv_mass < win_h;
+        })));
+    auto w_dijets = tup_filter(w_mass_filter, dijets, "w_dijets");
+
+    auto top_cands = cart_product<std::tuple<Jet,Jet>, Jet>(w_dijets, b_jets);
+
+    auto& dup_filter = GenFunction::register_function<bool(std::tuple<Jet,Jet>,Jet)>("dup_filter",
+        FUNC(([](const std::tuple<Jet,Jet>& w, const Jet& b){
+            int j0 = b.idx;
+            int j1 = std::get<0>(w).idx;
+            int j2 = std::get<1>(w).idx;
+            return (j0 != j1) && (j0 != j2) && (j1 != j2);
+        })));
+    top_cands = tup_filter(dup_filter, top_cands, "top_cands_deduped");
+
+
+    fv::map(GenFunction::register_function<float(std::tuple<Jet,Jet>,Jet)>("t_mass",
+        FUNC(([](const std::tuple<Jet,Jet>& w, const Jet& b){
+            return (std::get<0>(w).v+std::get<1>(w).v+b.v).M();
+        }))),top_cands, "rec_top_mass");
+
+
+    auto& inv_mass2 = GenFunction::register_function<float(Jet, Jet)>("inv_mass2",
+        FUNC(([] (const Jet& j1, const Jet& j2){
+            TLorentzVector sum = j1.v + j2.v;
             return (float)sum.M();
         })));
 
-    fv::map(inv_mass, dijet_4v, "di-jet_inv_mass");
+
+    fv::map(inv_mass2, dijets, "di-jet_inv_mass");
 
     fv::pair<vector<float>,vector<float>>("LepGood_energy", "LepGood_pt", "LepGood_energy_LepGood_pt");
     fv::pair<vector<float>,vector<float>>("Jet_energy", "Jet_eta", "Jet_energy_vs_Jet_eta");
@@ -176,108 +228,112 @@ void declare_values(MiniTreeDataSet& mt){
 
 void declare_containers(MiniTreeDataSet& mt){
 
-    mt.register_container(new ContainerTH1<int>("lepton_count", "Lepton Multiplicity", lookup<int>("nLepGood"), 8, 0, 8));
+    mt.register_container<ContainerTH1<int>>("lepton_count", "Lepton Multiplicity", lookup<int>("nLepGood"), 8, 0, 8);
 
-    mt.register_container(new ContainerTH1Many<float>("LepGood_energy_all", "Lepton Energy - All",
-                                                      lookup<vector<float>>("LepGood_energy"), 50, 0, 500));
-    mt.register_container(new ContainerTH1<float>("LepGood_energy_max", "Lepton Energy - Max",
+    mt.register_container<ContainerTH1Many<float>>("LepGood_energy_all", "Lepton Energy - All",
+                                                      lookup<vector<float>>("LepGood_energy"), 50, 0, 500);
+    mt.register_container<ContainerTH1<float>>("LepGood_energy_max", "Lepton Energy - Max",
                                                   lookup<float>("LepGood_energy_max"), 50, 0, 500,
-                                                  "Lepton Energy Max(GeV)"));
-    mt.register_container(new ContainerTH1<float>("LepGood_energy_min", "Lepton Energy - Min",
+                                                  "Lepton Energy Max(GeV)");
+    mt.register_container<ContainerTH1<float>>("LepGood_energy_min", "Lepton Energy - Min",
                                                   lookup<float>("LepGood_energy_min"), 50, 0, 500,
-                                                  "Lepton Energy Min(GeV)"));
-    mt.register_container(new ContainerTH1<float>("LepGood_energy_range", "Lepton Energy - Range",
+                                                  "Lepton Energy Min(GeV)");
+    mt.register_container<ContainerTH1<float>>("LepGood_energy_range", "Lepton Energy - Range",
                                                   lookup<float>("LepGood_energy_range"), 50, 0, 500,
-                                                  "Lepton Energy Range(GeV)"));
+                                                  "Lepton Energy Range(GeV)");
 
-    mt.register_container(new ContainerTH1Many<float>("Jet_pt", "Jet P_T",
+    mt.register_container<ContainerTH1Many<float>>("Jet_pt", "Jet P_T",
                                                       lookup<vector<float>>("Jet_pt"), 50, 0, 500,
-                                                      "Jet P_T"));
-    mt.register_container(new ContainerTH1Many<float>("Jet_eta", "Jet Eta",
+                                                      "Jet P_T");
+    mt.register_container<ContainerTH1Many<float>>("Jet_eta", "Jet Eta",
                                                       lookup<vector<float>>("Jet_eta"), 50, -3, 3,
-                                                      "Jet Eta"));
-    mt.register_container(new ContainerTH1Many<float>("Jet_phi", "Jet Phi",
+                                                      "Jet Eta");
+    mt.register_container<ContainerTH1Many<float>>("Jet_phi", "Jet Phi",
                                                       lookup<vector<float>>("Jet_phi"), 20, -PI, PI,
-                                                      "Jet Phi"));
-    mt.register_container(new ContainerTH1Many<float>("Jet_mass", "Jet Mass",
+                                                      "Jet Phi");
+    mt.register_container<ContainerTH1Many<float>>("Jet_mass", "Jet Mass",
                                                       lookup<vector<float>>("Jet_mass"), 50, 0, 200,
-                                                      "Jet Mass"));
+                                                      "Jet Mass");
 
-    mt.register_container(new ContainerTH1Many<float>("dijet_inv_mass", "Di-Jet Inv. Mass - All",
+    mt.register_container<ContainerTH1Many<float>>("dijet_inv_mass", "Di-Jet Inv. Mass - All",
                                                       lookup<vector<float>>("di-jet_inv_mass"), 100, 0, 500,
-                                                      "Di-Jet Mass"));
-    mt.register_container(new ContainerTH1Many<float>("dijet_inv_mass_osdilepton", "Di-Jet Inv. Mass - OS Dilepton",
+                                                      "Di-Jet Mass");
+    mt.register_container<ContainerTH1Many<float>>("dijet_inv_mass_osdilepton", "Di-Jet Inv. Mass - OS Dilepton",
                                                       lookup<vector<float>>("di-jet_inv_mass"), 100, 0, 500,
-                                                      "Di-Jet Mass"))->add_filter(lookup_obs_filter("os-dilepton"));
-    mt.register_container(new ContainerTH1Many<float>("dijet_inv_mass_ssdilepton", "Di-Jet Inv. Mass - SS Dilepton",
+                                                      "Di-Jet Mass")->add_filter(lookup_obs_filter("os-dilepton"));
+    mt.register_container<ContainerTH1Many<float>>("dijet_inv_mass_ssdilepton", "Di-Jet Inv. Mass - SS Dilepton",
                                                       lookup<vector<float>>("di-jet_inv_mass"), 100, 0, 500,
-                                                      "Di-Jet Mass"))->add_filter(lookup_obs_filter("ss-dilepton"));
-    mt.register_container(new ContainerTH1Many<float>("dijet_inv_mass_trilepton", "Di-Jet Inv. Mass - Trilepton",
+                                                      "Di-Jet Mass")->add_filter(lookup_obs_filter("ss-dilepton"));
+    mt.register_container<ContainerTH1Many<float>>("dijet_inv_mass_trilepton", "Di-Jet Inv. Mass - Trilepton",
                                                       lookup<vector<float>>("di-jet_inv_mass"), 100, 0, 500,
-                                                      "Di-Jet Mass"))->add_filter(lookup_obs_filter("trilepton"));
+                                                      "Di-Jet Mass")->add_filter(lookup_obs_filter("trilepton"));
+
+    mt.register_container<ContainerTH1Many<float>>("rec_top_mass", "Reconstructed top mass",
+                                                      lookup<vector<float>>("rec_top_mass"), 100, 0, 500,
+                                                      "Tri-jet invarient mass");
 
-    mt.register_container(new ContainerTH1Many<float>("Jet_energy", "Jet Energy",
+    mt.register_container<ContainerTH1Many<float>>("Jet_energy", "Jet Energy",
                                                       lookup<vector<float>>("Jet_energy"), 100, 0, 400,
-                                                      "Jet Energy"));
-    mt.register_container(new ContainerTH2Many<float>("Jet_energy_vs_Jet_eta", "Jet Energy vs Jet Eta",
+                                                      "Jet Energy");
+    mt.register_container<ContainerTH2Many<float>>("Jet_energy_vs_Jet_eta", "Jet Energy vs Jet Eta",
                                                       lookup<std::pair<vector<float>, vector<float>>>("Jet_energy_vs_Jet_eta"),
                                                       100, 0, 400, 50, -3, 3,
-                                                      "Jet Energy", "Jet Eta"));
+                                                      "Jet Energy", "Jet Eta");
 
-    mt.register_container(new ContainerTH2<int>("nLepvsnJet", "Number of Leptons vs Number of Jets",
+    mt.register_container<ContainerTH2<int>>("nLepvsnJet", "Number of Leptons vs Number of Jets",
                                               fv::pair<int, int>("nLepGood", "nJet"),
                                               7, 0, 7, 20, 0, 20,
-                                              "Number of Leptons", "Number of Jets"));
+                                              "Number of Leptons", "Number of Jets");
 
-    mt.register_container(new ContainerTH2Many<float>("LepGood_energy_vs_pt", "Lepton Energy vs Lepton Pt",
+    mt.register_container<ContainerTH2Many<float>>("LepGood_energy_vs_pt", "Lepton Energy vs Lepton Pt",
                                                       lookup<std::pair<std::vector<float>,std::vector<float>>>("LepGood_energy_LepGood_pt"),
                                                       50, 0, 500, 50, 0, 500,
-                                                      "lepton energy","lepton Pt"));
+                                                      "lepton energy","lepton Pt");
 
-    mt.register_container(new ContainerTH2<int>("genEle_count_v_recEle_count", "Number of Generated Electrons v. Number of Reconstructed Electrons",
+    mt.register_container<ContainerTH2<int>>("genEle_count_v_recEle_count", "Number of Generated Electrons v. Number of Reconstructed Electrons",
                                                 lookup<std::pair<int,int>>("genEle_count_v_recEle_count"),
                                                 10, 0, 10, 10, 0, 10,
-                                                "Generated Electrons","Reconstructed Electrons"));
+                                                "Generated Electrons","Reconstructed Electrons");
 
-    mt.register_container(new ContainerTH2<int>("genMu_count_v_recMu_count", "Number of Generated Muons v. Number of Reconstructed Muons",
+    mt.register_container<ContainerTH2<int>>("genMu_count_v_recMu_count", "Number of Generated Muons v. Number of Reconstructed Muons",
                                                 lookup<std::pair<int,int>>("genMu_count_v_recMu_count"),
                                                 10, 0, 10, 10, 0, 10,
-                                                "Generated Muons","Reconstructed Muons"));
+                                                "Generated Muons","Reconstructed Muons");
 
-    mt.register_container(new ContainerTH2<int>("genLep_count_v_recLep_count", "Number of Generated Leptons v. Number of Reconstructed Leptons (e & mu only)",
+    mt.register_container<ContainerTH2<int>>("genLep_count_v_recLep_count", "Number of Generated Leptons v. Number of Reconstructed Leptons (e & mu only)",
                                                 lookup<std::pair<int,int>>("genLep_count_v_recLep_count"),
                                                 10, 0, 10, 10, 0, 10,
-                                                "Generated Leptons","Reconstructed Leptons"));
+                                                "Generated Leptons","Reconstructed Leptons");
 
-    mt.register_container(new ContainerTH1<int>("b_jet_count", "B-Jet Multiplicity", lookup<int>("b_jet_count"), 10, 0, 10));
+    mt.register_container<ContainerTH1<int>>("b_jet_count", "B-Jet Multiplicity", lookup<int>("b_jet_count"), 10, 0, 10);
 
 
-    mt.register_container(new ContainerTH1<int>("jet_count_os_dilepton", "Jet Multiplicity - OS Dilepton Events",
-                                                lookup<int>("nJet"), 14, 0, 14))->add_filter(lookup_obs_filter("os-dilepton"));
-    mt.register_container(new ContainerTH1<int>("jet_count_ss_dilepton", "Jet Multiplicity - SS Dilepton Events",
-                                                lookup<int>("nJet"), 14, 0, 14))->add_filter(lookup_obs_filter("ss-dilepton"));
-    mt.register_container(new ContainerTH1<int>("jet_count_trilepton", "Jet Multiplicity - Trilepton Events",
-                                                lookup<int>("nJet"), 14, 0, 14))->add_filter(lookup_obs_filter("trilepton"));
+    mt.register_container<ContainerTH1<int>>("jet_count_os_dilepton", "Jet Multiplicity - OS Dilepton Events",
+                                                lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("os-dilepton"));
+    mt.register_container<ContainerTH1<int>>("jet_count_ss_dilepton", "Jet Multiplicity - SS Dilepton Events",
+                                                lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("ss-dilepton"));
+    mt.register_container<ContainerTH1<int>>("jet_count_trilepton", "Jet Multiplicity - Trilepton Events",
+                                                lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("trilepton"));
 
-    mt.register_container(new ContainerTH1<int>("nVert", "Number of Primary Vertices", lookup<int>("nVert"), 50, 0, 50));
+    mt.register_container<ContainerTH1<int>>("nVert", "Number of Primary Vertices", lookup<int>("nVert"), 50, 0, 50);
 
-    mt.register_container(new CounterMany<int>("GenPart_pdgId_counter", lookup<vector<int>>("GenPart_pdgId")));
+    mt.register_container<CounterMany<int>>("GenPart_pdgId_counter", lookup<vector<int>>("GenPart_pdgId"));
 
 
-    mt.register_container(new Vector<vector< int >>("GenPart_pdgId",          lookup<vector< int >>("GenPart_pdgId")));
-    mt.register_container(new Vector<vector< int >>("GenPart_motherIndex",    lookup<vector< int >>("GenPart_motherIndex")));
-    mt.register_container(new Vector<vector< int >>("GenPart_motherId",       lookup<vector< int >>("GenPart_motherId")));
-    mt.register_container(new Vector<vector<float>>("GenPart_pt",             lookup<vector<float>>("GenPart_pt")));
-    mt.register_container(new Vector<vector<float>>("GenPart_energy",         lookup<vector<float>>("GenPart_energy")));
-    mt.register_container(new Vector<vector< int >>("GenPart_status",         lookup<vector< int >>("GenPart_status")));
+    mt.register_container<Vector<vector< int >>>("GenPart_pdgId",          lookup<vector< int >>("GenPart_pdgId"));
+    mt.register_container<Vector<vector< int >>>("GenPart_motherIndex",    lookup<vector< int >>("GenPart_motherIndex"));
+    mt.register_container<Vector<vector< int >>>("GenPart_motherId",       lookup<vector< int >>("GenPart_motherId"));
+    mt.register_container<Vector<vector<float>>>("GenPart_pt",             lookup<vector<float>>("GenPart_pt"));
+    mt.register_container<Vector<vector<float>>>("GenPart_energy",         lookup<vector<float>>("GenPart_energy"));
+    mt.register_container<Vector<vector< int >>>("GenPart_status",         lookup<vector< int >>("GenPart_status"));
 
-    mt.register_container(new Vector<vector< int >>("LepGood_mcMatchId",      lookup<vector< int >>("LepGood_mcMatchId")));
-    mt.register_container(new Vector<vector< int >>("LepGood_mcMatchPdgId",   lookup<vector< int >>("LepGood_mcMatchPdgId")));
+    mt.register_container<Vector<vector< int >>>("LepGood_mcMatchId",      lookup<vector< int >>("LepGood_mcMatchId"));
+    mt.register_container<Vector<vector< int >>>("LepGood_mcMatchPdgId",   lookup<vector< int >>("LepGood_mcMatchPdgId"));
 
-    mt.register_container(new Vector< int >("run",  lookup< int >("run") ));
-    mt.register_container(new Vector< int >("lumi", lookup< int >("lumi")));
-    mt.register_container(new Vector< int >("evt",  lookup< int >("evt") ));
-    mt.register_container(new Vector<float>("xsec", lookup<float>("xsec")));
+    mt.register_container<Vector< int >>("run",  lookup< int >("run") );
+    mt.register_container<Vector< int >>("lumi", lookup< int >("lumi"));
+    mt.register_container<Vector< int >>("evt",  lookup< int >("evt") );
+    mt.register_container<Vector<float>>("xsec", lookup<float>("xsec"));
 }
 
 
@@ -304,7 +360,7 @@ int main(int argc, char * argv[])
 {
     fv::util::ArgParser args(argc, argv);
     if(!args.cmdOptionExists("-f")) {
-        cout << "Usage: ./main -f input_minitree.root" << endl;
+        cout << "Usage: ./main (-s) -f input_minitree.root" << endl;
         return -1;
     }
     bool silent = args.cmdOptionExists("-s");

File diff suppressed because it is too large
+ 1 - 1
docs/LinkDef_8hpp_source.html


File diff suppressed because it is too large
+ 4 - 4
docs/MiniTreeDataSet_8hpp_source.html


File diff suppressed because it is too large
+ 3417 - 7600
docs/TTTT_Analysis.html


File diff suppressed because it is too large
+ 31 - 28
docs/annotated.html


+ 83 - 51
docs/api_8hpp.html

@@ -116,74 +116,106 @@ ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><b>fv::lookup_obs
 template&lt;typename... ArgTypes&gt; </td></tr>
 <tr class="memitem:a26b50d1fe8359abd46a343b27439c35f"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::zip</b> (Value&lt; std::vector&lt; ArgTypes &gt;&gt; *... args, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a26b50d1fe8359abd46a343b27439c35f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a250f5025e8cc7a55e00a7c327f988dc9"><td class="memTemplParams" colspan="2"><a id="a250f5025e8cc7a55e00a7c327f988dc9"></a>
+<tr class="memitem:a5f6cddf787ea43504071ae6241009c98"><td class="memTemplParams" colspan="2"><a id="a5f6cddf787ea43504071ae6241009c98"></a>
 template&lt;typename Ret , typename... ArgTypes&gt; </td></tr>
-<tr class="memitem:a250f5025e8cc7a55e00a7c327f988dc9"><td class="memTemplItemLeft" align="right" valign="top">Map&lt; Ret(ArgTypes...)&gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::map</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt;&gt;&gt; *arg, const std::string &amp;alias=&quot;&quot;)</td></tr>
-<tr class="separator:a250f5025e8cc7a55e00a7c327f988dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab32ae470ed0ebfe9f35edf1a617f0f70"><td class="memTemplParams" colspan="2"><a id="ab32ae470ed0ebfe9f35edf1a617f0f70"></a>
+<tr class="memitem:a5f6cddf787ea43504071ae6241009c98"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; Ret &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::map</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt;&gt;&gt; *arg, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a5f6cddf787ea43504071ae6241009c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ba1ce087736f18af3360ea1e418d2c7"><td class="memTemplParams" colspan="2"><a id="a3ba1ce087736f18af3360ea1e418d2c7"></a>
 template&lt;typename... ArgTypes&gt; </td></tr>
-<tr class="memitem:ab32ae470ed0ebfe9f35edf1a617f0f70"><td class="memTemplItemLeft" align="right" valign="top">Tuple&lt; ArgTypes... &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::tuple</b> (Value&lt; ArgTypes &gt; *... args, const std::string &amp;alias=&quot;&quot;)</td></tr>
-<tr class="separator:ab32ae470ed0ebfe9f35edf1a617f0f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6c60f9184ed7b346ef9239821a61a043"><td class="memTemplParams" colspan="2"><a id="a6c60f9184ed7b346ef9239821a61a043"></a>
+<tr class="memitem:a3ba1ce087736f18af3360ea1e418d2c7"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::tuple&lt; ArgTypes... &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::tuple</b> (Value&lt; ArgTypes &gt; *... args, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a3ba1ce087736f18af3360ea1e418d2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3951826aff6680e2d587fb6fb08e7526"><td class="memTemplParams" colspan="2"><a id="a3951826aff6680e2d587fb6fb08e7526"></a>
+template&lt;size_t N, typename... ArgTypes&gt; </td></tr>
+<tr class="memitem:a3951826aff6680e2d587fb6fb08e7526"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; typename std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::detup</b> (Value&lt; std::tuple&lt; ArgTypes... &gt;&gt; *tup, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a3951826aff6680e2d587fb6fb08e7526"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a529978066d36d743a0083968cccbfe0a"><td class="memTemplParams" colspan="2"><a id="a529978066d36d743a0083968cccbfe0a"></a>
+template&lt;size_t N, typename... ArgTypes&gt; </td></tr>
+<tr class="memitem:a529978066d36d743a0083968cccbfe0a"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; typename std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::detup_vec</b> (Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt;&gt;&gt; *tup, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a529978066d36d743a0083968cccbfe0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf84ef885345c7a71fbd417f3d9e94f3"><td class="memTemplParams" colspan="2"><a id="abf84ef885345c7a71fbd417f3d9e94f3"></a>
 template&lt;typename Ret , typename... ArgTypes&gt; </td></tr>
-<tr class="memitem:a6c60f9184ed7b346ef9239821a61a043"><td class="memTemplItemLeft" align="right" valign="top">Apply&lt; Ret(ArgTypes...)&gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::apply</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, Tuple&lt; ArgTypes... &gt; *arg, const std::string &amp;alias=&quot;&quot;)</td></tr>
-<tr class="separator:a6c60f9184ed7b346ef9239821a61a043"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc72170fe297537145de584f0912719e"><td class="memTemplParams" colspan="2"><a id="abc72170fe297537145de584f0912719e"></a>
+<tr class="memitem:abf84ef885345c7a71fbd417f3d9e94f3"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; Ret &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::apply</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, Value&lt; std::tuple&lt; ArgTypes... &gt;&gt; *arg, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:abf84ef885345c7a71fbd417f3d9e94f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae11c2654b0f8a1ac03cc3a44083e15ee"><td class="memTemplParams" colspan="2"><a id="ae11c2654b0f8a1ac03cc3a44083e15ee"></a>
 template&lt;typename T1 , typename T2 &gt; </td></tr>
-<tr class="memitem:abc72170fe297537145de584f0912719e"><td class="memTemplItemLeft" align="right" valign="top">Pair&lt; T1, T2 &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::pair</b> (Value&lt; T1 &gt; *val1, Value&lt; T2 &gt; *val2, const std::string &amp;alias=&quot;&quot;)</td></tr>
-<tr class="separator:abc72170fe297537145de584f0912719e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3def12ab97adba53ce485fb72f187a23"><td class="memTemplParams" colspan="2"><a id="a3def12ab97adba53ce485fb72f187a23"></a>
+<tr class="memitem:ae11c2654b0f8a1ac03cc3a44083e15ee"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::pair&lt; T1, T2 &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::pair</b> (Value&lt; T1 &gt; *val1, Value&lt; T2 &gt; *val2, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:ae11c2654b0f8a1ac03cc3a44083e15ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75d383db6e4e0baf5d542989cd8ba082"><td class="memTemplParams" colspan="2"><a id="a75d383db6e4e0baf5d542989cd8ba082"></a>
 template&lt;typename T1 , typename T2 &gt; </td></tr>
-<tr class="memitem:a3def12ab97adba53ce485fb72f187a23"><td class="memTemplItemLeft" align="right" valign="top">Pair&lt; T1, T2 &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::pair</b> (const std::string &amp;name1, const std::string &amp;name2, const std::string &amp;alias=&quot;&quot;)</td></tr>
-<tr class="separator:a3def12ab97adba53ce485fb72f187a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a003229bd3d3bc5d215b2a6f47f0efa57"><td class="memTemplParams" colspan="2"><a id="a003229bd3d3bc5d215b2a6f47f0efa57"></a>
+<tr class="memitem:a75d383db6e4e0baf5d542989cd8ba082"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::pair&lt; T1, T2 &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::pair</b> (const std::string &amp;name1, const std::string &amp;name2, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a75d383db6e4e0baf5d542989cd8ba082"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b58d6182e0a3c2957b4e76b0c77dcbb"><td class="memTemplParams" colspan="2"><a id="a3b58d6182e0a3c2957b4e76b0c77dcbb"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a003229bd3d3bc5d215b2a6f47f0efa57"><td class="memTemplItemLeft" align="right" valign="top">Max&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::max</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias)</td></tr>
-<tr class="separator:a003229bd3d3bc5d215b2a6f47f0efa57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a19f843daeba32e38ea835330e667ffdd"><td class="memTemplParams" colspan="2"><a id="a19f843daeba32e38ea835330e667ffdd"></a>
+<tr class="memitem:a3b58d6182e0a3c2957b4e76b0c77dcbb"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::max</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a3b58d6182e0a3c2957b4e76b0c77dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad07d5fcd7407393f06b8dc3f8a5bdd63"><td class="memTemplParams" colspan="2"><a id="ad07d5fcd7407393f06b8dc3f8a5bdd63"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a19f843daeba32e38ea835330e667ffdd"><td class="memTemplItemLeft" align="right" valign="top">Max&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::max</b> (const std::string &amp;v_name, const std::string alias)</td></tr>
-<tr class="separator:a19f843daeba32e38ea835330e667ffdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a139f5ec0ae04cd6579bafb3bbd10904b"><td class="memTemplParams" colspan="2"><a id="a139f5ec0ae04cd6579bafb3bbd10904b"></a>
+<tr class="memitem:ad07d5fcd7407393f06b8dc3f8a5bdd63"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::max</b> (const std::string &amp;v_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:ad07d5fcd7407393f06b8dc3f8a5bdd63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6cc88e6768083c4933bbfbe8c13f0925"><td class="memTemplParams" colspan="2"><a id="a6cc88e6768083c4933bbfbe8c13f0925"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a139f5ec0ae04cd6579bafb3bbd10904b"><td class="memTemplItemLeft" align="right" valign="top">Min&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::min</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias)</td></tr>
-<tr class="separator:a139f5ec0ae04cd6579bafb3bbd10904b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad2addb13f0fcb7e5c4039b8ad41ddb8e"><td class="memTemplParams" colspan="2"><a id="ad2addb13f0fcb7e5c4039b8ad41ddb8e"></a>
+<tr class="memitem:a6cc88e6768083c4933bbfbe8c13f0925"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::min</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a6cc88e6768083c4933bbfbe8c13f0925"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1f87df69ec3507987990caf0ef2d31d"><td class="memTemplParams" colspan="2"><a id="ae1f87df69ec3507987990caf0ef2d31d"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ad2addb13f0fcb7e5c4039b8ad41ddb8e"><td class="memTemplItemLeft" align="right" valign="top">Min&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::min</b> (const std::string &amp;v_name, const std::string alias)</td></tr>
-<tr class="separator:ad2addb13f0fcb7e5c4039b8ad41ddb8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6c7f27b83e905eb02dabe8360b46c659"><td class="memTemplParams" colspan="2"><a id="a6c7f27b83e905eb02dabe8360b46c659"></a>
+<tr class="memitem:ae1f87df69ec3507987990caf0ef2d31d"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::min</b> (const std::string &amp;v_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:ae1f87df69ec3507987990caf0ef2d31d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:accc998ba6310e6f8643ed3839cc34aba"><td class="memTemplParams" colspan="2"><a id="accc998ba6310e6f8643ed3839cc34aba"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a6c7f27b83e905eb02dabe8360b46c659"><td class="memTemplItemLeft" align="right" valign="top">Range&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::range</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias)</td></tr>
-<tr class="separator:a6c7f27b83e905eb02dabe8360b46c659"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7b06a77294829f8671d078eccd7070f6"><td class="memTemplParams" colspan="2"><a id="a7b06a77294829f8671d078eccd7070f6"></a>
+<tr class="memitem:accc998ba6310e6f8643ed3839cc34aba"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::range</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:accc998ba6310e6f8643ed3839cc34aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac10aae7b82637c510fba63f5dacc907b"><td class="memTemplParams" colspan="2"><a id="ac10aae7b82637c510fba63f5dacc907b"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a7b06a77294829f8671d078eccd7070f6"><td class="memTemplItemLeft" align="right" valign="top">Range&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::range</b> (const std::string &amp;v_name, const std::string alias)</td></tr>
-<tr class="separator:a7b06a77294829f8671d078eccd7070f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5954a7c6506d8890954fe2745cf98f39"><td class="memTemplParams" colspan="2"><a id="a5954a7c6506d8890954fe2745cf98f39"></a>
+<tr class="memitem:ac10aae7b82637c510fba63f5dacc907b"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::range</b> (const std::string &amp;v_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:ac10aae7b82637c510fba63f5dacc907b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2cee79c6a25e61d02af63267e84aaa"><td class="memTemplParams" colspan="2"><a id="a2f2cee79c6a25e61d02af63267e84aaa"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a5954a7c6506d8890954fe2745cf98f39"><td class="memTemplItemLeft" align="right" valign="top">Mean&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::mean</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias)</td></tr>
-<tr class="separator:a5954a7c6506d8890954fe2745cf98f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afecc8cb32f78547718821288bdd66926"><td class="memTemplParams" colspan="2"><a id="afecc8cb32f78547718821288bdd66926"></a>
+<tr class="memitem:a2f2cee79c6a25e61d02af63267e84aaa"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::mean</b> (Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a2f2cee79c6a25e61d02af63267e84aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec5733b62ac33f3406a2b28f636e3e57"><td class="memTemplParams" colspan="2"><a id="aec5733b62ac33f3406a2b28f636e3e57"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:afecc8cb32f78547718821288bdd66926"><td class="memTemplItemLeft" align="right" valign="top">Mean&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::mean</b> (const std::string &amp;v_name, const std::string alias)</td></tr>
-<tr class="separator:afecc8cb32f78547718821288bdd66926"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac3afc05888f1f4ee0222e98f6cef95f0"><td class="memTemplParams" colspan="2"><a id="ac3afc05888f1f4ee0222e98f6cef95f0"></a>
+<tr class="memitem:aec5733b62ac33f3406a2b28f636e3e57"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::mean</b> (const std::string &amp;v_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:aec5733b62ac33f3406a2b28f636e3e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f1a26ed19d77644433fcd57b0fac134"><td class="memTemplParams" colspan="2"><a id="a0f1a26ed19d77644433fcd57b0fac134"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ac3afc05888f1f4ee0222e98f6cef95f0"><td class="memTemplItemLeft" align="right" valign="top">Count&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::count</b> (Function&lt; bool(T)&gt; &amp;selector, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias)</td></tr>
-<tr class="separator:ac3afc05888f1f4ee0222e98f6cef95f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5664cf7172a7c27d8d9e19bd8eb5d78d"><td class="memTemplParams" colspan="2"><a id="a5664cf7172a7c27d8d9e19bd8eb5d78d"></a>
+<tr class="memitem:a0f1a26ed19d77644433fcd57b0fac134"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; int &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::count</b> (Function&lt; bool(T)&gt; &amp;selector, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a0f1a26ed19d77644433fcd57b0fac134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a554da83102443b23009eba6b6392360d"><td class="memTemplParams" colspan="2"><a id="a554da83102443b23009eba6b6392360d"></a>
 template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a5664cf7172a7c27d8d9e19bd8eb5d78d"><td class="memTemplItemLeft" align="right" valign="top">Count&lt; T &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::count</b> (Function&lt; bool(T)&gt; &amp;selector, const std::string &amp;v_name, const std::string alias)</td></tr>
-<tr class="separator:a5664cf7172a7c27d8d9e19bd8eb5d78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa4ec4de11b21ee95cc6c73a9b20ea669"><td class="memTemplParams" colspan="2"><a id="aa4ec4de11b21ee95cc6c73a9b20ea669"></a>
+<tr class="memitem:a554da83102443b23009eba6b6392360d"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; int &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::count</b> (Function&lt; bool(T)&gt; &amp;selector, const std::string &amp;v_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a554da83102443b23009eba6b6392360d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f5f6d6d56b8f2f90296ab9fbbf01c84"><td class="memTemplParams" colspan="2"><a id="a3f5f6d6d56b8f2f90296ab9fbbf01c84"></a>
 template&lt;typename FST , typename SND &gt; </td></tr>
-<tr class="memitem:aa4ec4de11b21ee95cc6c73a9b20ea669"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::cart_product</b> (Value&lt; std::vector&lt; FST &gt;&gt; *val1, Value&lt; std::vector&lt; SND &gt;&gt; *val2, const std::string alias)</td></tr>
-<tr class="separator:aa4ec4de11b21ee95cc6c73a9b20ea669"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a70cffb6394d7cd9ec70f16797998cc9c"><td class="memTemplParams" colspan="2"><a id="a70cffb6394d7cd9ec70f16797998cc9c"></a>
+<tr class="memitem:a3f5f6d6d56b8f2f90296ab9fbbf01c84"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::cart_product</b> (Value&lt; std::vector&lt; FST &gt;&gt; *val1, Value&lt; std::vector&lt; SND &gt;&gt; *val2, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a3f5f6d6d56b8f2f90296ab9fbbf01c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bf12c1d228ee92d55264f38353da13e"><td class="memTemplParams" colspan="2"><a id="a3bf12c1d228ee92d55264f38353da13e"></a>
 template&lt;typename FST , typename SND &gt; </td></tr>
-<tr class="memitem:a70cffb6394d7cd9ec70f16797998cc9c"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::cart_product</b> (const std::string &amp;val1_name, const std::string &amp;val2_name, const std::string alias=&quot;&quot;)</td></tr>
-<tr class="separator:a70cffb6394d7cd9ec70f16797998cc9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bf12c1d228ee92d55264f38353da13e"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::cart_product</b> (const std::string &amp;val1_name, const std::string &amp;val2_name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a3bf12c1d228ee92d55264f38353da13e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a806ca30beec739e2de637900ba254432"><td class="memTemplParams" colspan="2"><a id="a806ca30beec739e2de637900ba254432"></a>
+template&lt;typename T , int Size&gt; </td></tr>
+<tr class="memitem:a806ca30beec739e2de637900ba254432"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; typename HomoTuple&lt; T, Size &gt;::type &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::combinations</b> (Value&lt; std::vector&lt; T &gt;&gt; *val, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a806ca30beec739e2de637900ba254432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d96783878f1705b92a5356e7da9010f"><td class="memTemplParams" colspan="2"><a id="a9d96783878f1705b92a5356e7da9010f"></a>
+template&lt;typename T , int Size&gt; </td></tr>
+<tr class="memitem:a9d96783878f1705b92a5356e7da9010f"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; typename HomoTuple&lt; T, Size &gt;::type &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::combinations</b> (const std::string &amp;val_name, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:a9d96783878f1705b92a5356e7da9010f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92535b827fc24bdac21c2946f94bfc18"><td class="memTemplParams" colspan="2"><a id="a92535b827fc24bdac21c2946f94bfc18"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a92535b827fc24bdac21c2946f94bfc18"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; T &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::filter</b> (Function&lt; bool(T)&gt; &amp;filter, Value&lt; std::vector&lt; T &gt;&gt; *val, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:a92535b827fc24bdac21c2946f94bfc18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af21834c019941f99aeb18167757d586a"><td class="memTemplParams" colspan="2"><a id="af21834c019941f99aeb18167757d586a"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:af21834c019941f99aeb18167757d586a"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; T &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::filter</b> (Function&lt; bool(T)&gt; &amp;filter_func, const std::string &amp;val_name, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:af21834c019941f99aeb18167757d586a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24ba10ee4add24ac728bf558c1d15c65"><td class="memTemplParams" colspan="2"><a id="a24ba10ee4add24ac728bf558c1d15c65"></a>
+template&lt;typename... ArgTypes&gt; </td></tr>
+<tr class="memitem:a24ba10ee4add24ac728bf558c1d15c65"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::tup_filter</b> (Function&lt; bool(ArgTypes...)&gt; &amp;filter, Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt;&gt;&gt; *val, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:a24ba10ee4add24ac728bf558c1d15c65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a025873c4dc4de5280290f5798d00bf1e"><td class="memTemplParams" colspan="2"><a id="a025873c4dc4de5280290f5798d00bf1e"></a>
+template&lt;typename... ArgTypes&gt; </td></tr>
+<tr class="memitem:a025873c4dc4de5280290f5798d00bf1e"><td class="memTemplItemLeft" align="right" valign="top">Value&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt; &gt; &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fv::tup_filter</b> (Function&lt; bool(ArgTypes...)&gt; &amp;filter, const std::string &amp;val_name, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:a025873c4dc4de5280290f5798d00bf1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a97c916f0cec36778d54ff19e98c8abaf"><td class="memItemLeft" align="right" valign="top"><a id="a97c916f0cec36778d54ff19e98c8abaf"></a>
 ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><b>fv::obs_filter</b> (const std::string &amp;name, std::function&lt; bool()&gt; filter_function, const std::string &amp;impl=&quot;&quot;)</td></tr>
 <tr class="separator:a97c916f0cec36778d54ff19e98c8abaf"><td class="memSeparator" colspan="2">&#160;</td></tr>

File diff suppressed because it is too large
+ 15 - 10
docs/api_8hpp_source.html


File diff suppressed because it is too large
+ 24 - 24
docs/classes.html


File diff suppressed because it is too large
+ 24 - 18
docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4-members.html


+ 22 - 22
docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4.html

@@ -91,23 +91,24 @@ Collaboration diagram for fv::Apply&lt; Ret(ArgTypes...)&gt;:</div>
 <div class="dyncontent">
 <div class="center"><img src="classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.png" border="0" usemap="#fv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_coll__map" alt="Collaboration graph"/></div>
 <map name="fv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_coll__map" id="fv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_coll__map">
-<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; Ret \&gt;" alt="" coords="5,187,185,213"/>
-<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; Ret \&gt;" alt="" coords="31,103,160,130"/>
-<area shape="rect" id="node4" href="classfv_1_1Tuple.html" title="fv::Tuple\&lt; ArgTypes... \&gt;" alt="" coords="209,187,387,213"/>
-<area shape="rect" id="node5" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="209,96,387,137"/>
-<area shape="rect" id="node6" href="classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="221,5,375,47"/>
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; Ret \&gt;" alt="" coords="5,89,185,115"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; Ret \&gt;" alt="" coords="31,5,160,32"/>
+<area shape="rect" id="node4" href="classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="210,81,365,123"/>
 </map>
 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a3d8e9c15d7cb2f6cd3d5ddcde9823f27"><td class="memItemLeft" align="right" valign="top"><a id="a3d8e9c15d7cb2f6cd3d5ddcde9823f27"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>Apply</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, <a class="el" href="classfv_1_1Tuple.html">Tuple</a>&lt; ArgTypes... &gt; *arg, const std::string &amp;alias)</td></tr>
-<tr class="separator:a3d8e9c15d7cb2f6cd3d5ddcde9823f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4b1171cfffb3127cd975a40b78e201b"><td class="memItemLeft" align="right" valign="top"><a id="ab4b1171cfffb3127cd975a40b78e201b"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Apply</b> (Function&lt; Ret(ArgTypes...)&gt; &amp;fn, <a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::tuple&lt; ArgTypes... &gt;&gt; *arg, const std::string &amp;alias)</td></tr>
+<tr class="separator:ab4b1171cfffb3127cd975a40b78e201b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; Ret &gt;</a></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 Ret &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -116,6 +117,12 @@ Ret &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(Ret)&gt; &amp;value_to_string=[](Ret){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -128,9 +135,9 @@ Private Attributes</h2></td></tr>
 <tr class="memitem:aeb77bdf0c8baac217db5008b671b23e2"><td class="memItemLeft" align="right" valign="top"><a id="aeb77bdf0c8baac217db5008b671b23e2"></a>
 Function&lt; Ret(ArgTypes...)&gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>fn</b></td></tr>
 <tr class="separator:aeb77bdf0c8baac217db5008b671b23e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aedd1e514a75d1d74c222842a8677c310"><td class="memItemLeft" align="right" valign="top"><a id="aedd1e514a75d1d74c222842a8677c310"></a>
-<a class="el" href="classfv_1_1Tuple.html">Tuple</a>&lt; ArgTypes... &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>arg</b></td></tr>
-<tr class="separator:aedd1e514a75d1d74c222842a8677c310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28817f72816850a22ebf0317c6217ed4"><td class="memItemLeft" align="right" valign="top"><a id="a28817f72816850a22ebf0317c6217ed4"></a>
+<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::tuple&lt; ArgTypes... &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>arg</b></td></tr>
+<tr class="separator:a28817f72816850a22ebf0317c6217ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -138,9 +145,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 Ret&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; Ret &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(Ret)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename Ret, typename... ArgTypes&gt;<br />
@@ -178,14 +186,6 @@ template&lt;typename Ret , typename... ArgTypes&gt; </div>
 <p>This function should be overridden by any child class to do the actual work of updating value based on whatever rules the class chooses. Normally, this consists of geting the values from some associated <a class="el" href="classfv_1_1Value.html" title="A generic value. ">Value</a> objects, doing some calculation on them, and storing the result in value. </p>
 
 <p>Implements <a class="el" href="classfv_1_1DerivedValue.html#ae59e80a98eb74b95d8961bfe12ee5ec2">fv::DerivedValue&lt; Ret &gt;</a>.</p>
-<div class="dynheader">
-Here is the call graph for this function:</div>
-<div class="dyncontent">
-<div class="center"><img src="classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_ab983f969ff7652150e7ce1d1240672e0_cgraph.png" border="0" usemap="#classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_ab983f969ff7652150e7ce1d1240672e0_cgraph" alt=""/></div>
-<map name="classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_ab983f969ff7652150e7ce1d1240672e0_cgraph" id="classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4_ab983f969ff7652150e7ce1d1240672e0_cgraph">
-<area shape="rect" id="node2" href="namespacefv.html#a182def996bfac5212fd450627a187ae4" title="This calls a function of type F with the contents of the tuple as separate arguments. " alt="" coords="249,13,315,39"/>
-</map>
-</div>
 
 </div>
 </div>

+ 3 - 5
docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.map

@@ -1,7 +1,5 @@
 <map id="fv::Apply&lt; Ret(ArgTypes...)&gt;" name="fv::Apply&lt; Ret(ArgTypes...)&gt;">
-<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; Ret \&gt;" alt="" coords="5,187,185,213"/>
-<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; Ret \&gt;" alt="" coords="31,103,160,130"/>
-<area shape="rect" id="node4" href="$classfv_1_1Tuple.html" title="fv::Tuple\&lt; ArgTypes... \&gt;" alt="" coords="209,187,387,213"/>
-<area shape="rect" id="node5" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="209,96,387,137"/>
-<area shape="rect" id="node6" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="221,5,375,47"/>
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; Ret \&gt;" alt="" coords="5,89,185,115"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; Ret \&gt;" alt="" coords="31,5,160,32"/>
+<area shape="rect" id="node4" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="210,81,365,123"/>
 </map>

+ 1 - 1
docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.md5

@@ -1 +1 @@
-7cabbbcdbb1eae791491c1696deff2de
+0cf97af65ed84634a0b4fe83326d3349

BIN
docs/classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4__coll__graph.png


+ 22 - 16
docs/classfv_1_1BoundValue-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>BoundValue</b>(Function&lt; T()&gt; &amp;f, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>f</b> (defined in <a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1BoundValue.html#a51ba914f1eac694af4264d62785282a1">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>BoundValue</b>(Function&lt; T()&gt; &amp;f, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>f</b> (defined in <a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1BoundValue.html#a51ba914f1eac694af4264d62785282a1">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1BoundValue.html">fv::BoundValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1BoundValue.html

@@ -105,6 +105,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -113,6 +116,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
@@ -129,9 +138,10 @@ Function&lt; T()&gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

File diff suppressed because it is too large
+ 18 - 12
docs/classfv_1_1CartProduct-members.html


+ 22 - 8
docs/classfv_1_1CartProduct.html

@@ -66,6 +66,7 @@ $(function() {
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
 <a href="#pri-attribs">Private Attributes</a> &#124;
 <a href="classfv_1_1CartProduct-members.html">List of all members</a>  </div>
   <div class="headertitle">
@@ -73,7 +74,7 @@ $(function() {
 </div><!--header-->
 <div class="contents">
 
-<p>Find and return the minimum value of a vector and its index.  
+<p>Calculate the cartesian product of two input vectors.  
  <a href="classfv_1_1CartProduct.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="value_8hpp_source.html">value.hpp</a>&gt;</code></p>
@@ -107,6 +108,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -115,6 +119,12 @@ std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &amp;&#160;</td><td class="mem
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::vector&lt; std::tuple&lt; FST, SND &gt; &gt;)&gt; &amp;value_to_string=[](std::vector&lt; std::tuple&lt; FST, SND &gt; &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -122,6 +132,12 @@ Private Member Functions</h2></td></tr>
 <tr class="memdesc:a087a4b184e628e3fa20040b33225a906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the internal value.  <a href="#a087a4b184e628e3fa20040b33225a906">More...</a><br /></td></tr>
 <tr class="separator:a087a4b184e628e3fa20040b33225a906"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:a972e08a268a8657deba7acd0f2bfcde4"><td class="memItemLeft" align="right" valign="top"><a id="a972e08a268a8657deba7acd0f2bfcde4"></a>
+static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>calc_name</b> (<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; FST &gt;&gt; *val1, <a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; SND &gt;&gt; *val2)</td></tr>
+<tr class="separator:a972e08a268a8657deba7acd0f2bfcde4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
 <tr class="memitem:a95a20c4b3860c67f9f3d738843ac94f6"><td class="memItemLeft" align="right" valign="top"><a id="a95a20c4b3860c67f9f3d738843ac94f6"></a>
@@ -130,9 +146,6 @@ Private Attributes</h2></td></tr>
 <tr class="memitem:a3d03589f22cf80ae731646046e270ea5"><td class="memItemLeft" align="right" valign="top"><a id="a3d03589f22cf80ae731646046e270ea5"></a>
 <a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; SND &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>val2</b></td></tr>
 <tr class="separator:a3d03589f22cf80ae731646046e270ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa80b1f9cd5c51bbf948238370dfe3d93"><td class="memItemLeft" align="right" valign="top"><a id="aa80b1f9cd5c51bbf948238370dfe3d93"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>self_product</b></td></tr>
-<tr class="separator:aa80b1f9cd5c51bbf948238370dfe3d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -140,15 +153,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::vector&lt; std::tuple&lt; FST, SND &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; std::tuple&lt; FST, SND &gt; &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::vector&lt; std::tuple&lt; FST, SND &gt; &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename FST, typename SND&gt;<br />
 class fv::CartProduct&lt; FST, SND &gt;</h3>
 
-<p>Find and return the minimum value of a vector and its index. </p>
+<p>Calculate the cartesian product of two input vectors. </p>
 </div><h2 class="groupheader">Member Function Documentation</h2>
 <a id="a087a4b184e628e3fa20040b33225a906"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a087a4b184e628e3fa20040b33225a906">&#9670;&nbsp;</a></span>update_value()</h2>

File diff suppressed because it is too large
+ 107 - 0
docs/classfv_1_1Combinations-members.html


+ 222 - 0
docs/classfv_1_1Combinations.html

@@ -0,0 +1,222 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>TTTT Analysis: fv::Combinations&lt; T, Size &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">TTTT Analysis
+   &#160;<span id="projectnumber">0.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacefv.html">fv</a></li><li class="navelem"><a class="el" href="classfv_1_1Combinations.html">Combinations</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-types">Private Types</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classfv_1_1Combinations-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">fv::Combinations&lt; T, Size &gt; Class Template Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Find combinations of items from an input vector.  
+ <a href="classfv_1_1Combinations.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="value_8hpp_source.html">value.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for fv::Combinations&lt; T, Size &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1Combinations__inherit__graph.png" border="0" usemap="#fv_1_1Combinations_3_01T_00_01Size_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="fv_1_1Combinations_3_01T_00_01Size_01_4_inherit__map" id="fv_1_1Combinations_3_01T_00_01Size_01_4_inherit__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; HomoTuple\&lt;\l T, Size \&gt;::type \&gt; \&gt;" alt="" coords="11,109,182,165"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; HomoTuple\&lt; T, Size \&gt;\l::type \&gt; \&gt;" alt="" coords="5,5,188,61"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for fv::Combinations&lt; T, Size &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1Combinations__coll__graph.png" border="0" usemap="#fv_1_1Combinations_3_01T_00_01Size_01_4_coll__map" alt="Collaboration graph"/></div>
+<map name="fv_1_1Combinations_3_01T_00_01Size_01_4_coll__map" id="fv_1_1Combinations_3_01T_00_01Size_01_4_coll__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; HomoTuple\&lt;\l T, Size \&gt;::type \&gt; \&gt;" alt="" coords="237,5,408,61"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; HomoTuple\&lt; T, Size \&gt;\l::type \&gt; \&gt;" alt="" coords="5,5,188,61"/>
+<area shape="rect" id="node4" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; T \&gt; \&gt;" alt="" coords="241,86,404,127"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a61ba54fb2046fc67acd91cdac4737753"><td class="memItemLeft" align="right" valign="top"><a id="a61ba54fb2046fc67acd91cdac4737753"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Combinations</b> (<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; T &gt;&gt; *val, const std::string alias=&quot;&quot;)</td></tr>
+<tr class="separator:a61ba54fb2046fc67acd91cdac4737753"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
+std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
+<tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
+<tr class="separator:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt;)&gt; &amp;value_to_string=[](std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
+Private Types</h2></td></tr>
+<tr class="memitem:a9ff01c6f111be04fe43fd813b2c7d60c"><td class="memItemLeft" align="right" valign="top"><a id="a9ff01c6f111be04fe43fd813b2c7d60c"></a>
+typedef HomoTuple&lt; T, Size &gt;::type&#160;</td><td class="memItemRight" valign="bottom"><b>tuple_type</b></td></tr>
+<tr class="separator:a9ff01c6f111be04fe43fd813b2c7d60c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a69ce557136cf74ba2e8540e06151bfa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1Combinations.html#a69ce557136cf74ba2e8540e06151bfa5">update_value</a> ()</td></tr>
+<tr class="memdesc:a69ce557136cf74ba2e8540e06151bfa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the internal value.  <a href="#a69ce557136cf74ba2e8540e06151bfa5">More...</a><br /></td></tr>
+<tr class="separator:a69ce557136cf74ba2e8540e06151bfa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:a77f9b16b2e4290f51e1078bfa411fe2b"><td class="memItemLeft" align="right" valign="top"><a id="a77f9b16b2e4290f51e1078bfa411fe2b"></a>
+static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>calc_name</b> (<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; T &gt;&gt; *val)</td></tr>
+<tr class="separator:a77f9b16b2e4290f51e1078bfa411fe2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:ab825ab8ca94a1c6d350215a43198c6b7"><td class="memItemLeft" align="right" valign="top"><a id="ab825ab8ca94a1c6d350215a43198c6b7"></a>
+<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; T &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>val</b></td></tr>
+<tr class="separator:ab825ab8ca94a1c6d350215a43198c6b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
+std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
+<tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;typename T, int Size&gt;<br />
+class fv::Combinations&lt; T, Size &gt;</h3>
+
+<p>Find combinations of items from an input vector. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a69ce557136cf74ba2e8540e06151bfa5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69ce557136cf74ba2e8540e06151bfa5">&#9670;&nbsp;</a></span>update_value()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T, int Size&gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="classfv_1_1Combinations.html">fv::Combinations</a>&lt; T, Size &gt;::update_value </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Updates the internal value. </p>
+<p>This function should be overridden by any child class to do the actual work of updating value based on whatever rules the class chooses. Normally, this consists of geting the values from some associated <a class="el" href="classfv_1_1Value.html" title="A generic value. ">Value</a> objects, doing some calculation on them, and storing the result in value. </p>
+<p>!! </p>
+
+<p>Implements <a class="el" href="classfv_1_1DerivedValue.html#ae59e80a98eb74b95d8961bfe12ee5ec2">fv::DerivedValue&lt; std::vector&lt; HomoTuple&lt; T, Size &gt;::type &gt; &gt;</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.png" border="0" usemap="#classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph" alt=""/></div>
+<map name="classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph" id="classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph">
+<area shape="rect" id="node2" href="classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="239,13,389,39"/>
+</map>
+</div>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/caleb/Sources/TTTT/filval/<a class="el" href="value_8hpp_source.html">value.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>

+ 5 - 0
docs/classfv_1_1Combinations__coll__graph.map

@@ -0,0 +1,5 @@
+<map id="fv::Combinations&lt; T, Size &gt;" name="fv::Combinations&lt; T, Size &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; HomoTuple\&lt;\l T, Size \&gt;::type \&gt; \&gt;" alt="" coords="237,5,408,61"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; HomoTuple\&lt; T, Size \&gt;\l::type \&gt; \&gt;" alt="" coords="5,5,188,61"/>
+<area shape="rect" id="node4" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; T \&gt; \&gt;" alt="" coords="241,86,404,127"/>
+</map>

+ 1 - 0
docs/classfv_1_1Combinations__coll__graph.md5

@@ -0,0 +1 @@
+1d71c917cd00de8a75b004a6b05450eb

BIN
docs/classfv_1_1Combinations__coll__graph.png


+ 4 - 0
docs/classfv_1_1Combinations__inherit__graph.map

@@ -0,0 +1,4 @@
+<map id="fv::Combinations&lt; T, Size &gt;" name="fv::Combinations&lt; T, Size &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; HomoTuple\&lt;\l T, Size \&gt;::type \&gt; \&gt;" alt="" coords="11,109,182,165"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; HomoTuple\&lt; T, Size \&gt;\l::type \&gt; \&gt;" alt="" coords="5,5,188,61"/>
+</map>

+ 1 - 0
docs/classfv_1_1Combinations__inherit__graph.md5

@@ -0,0 +1 @@
+73565faadcfdc28598c4ae23805c642d

BIN
docs/classfv_1_1Combinations__inherit__graph.png


+ 3 - 0
docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.map

@@ -0,0 +1,3 @@
+<map id="fv::Combinations::update_value" name="fv::Combinations::update_value">
+<area shape="rect" id="node2" href="$classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="239,13,389,39"/>
+</map>

+ 1 - 0
docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.md5

@@ -0,0 +1 @@
+02726c11147904cc88f67d5ed5e659a1

BIN
docs/classfv_1_1Combinations_a69ce557136cf74ba2e8540e06151bfa5_cgraph.png


+ 22 - 16
docs/classfv_1_1ConstantValue-members.html

@@ -70,22 +70,28 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>ConstantValue</b>(const std::string &amp;name, T const_value, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html#a6581e7fb69c082c07c9714138063b320">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ConstantValue</b>(const std::string &amp;name, T const_value, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html#a6581e7fb69c082c07c9714138063b320">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1ConstantValue.html">fv::ConstantValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1ConstantValue.html

@@ -104,6 +104,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -112,6 +115,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
@@ -125,9 +134,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 10 - 8
docs/classfv_1_1Container-members.html

@@ -64,24 +64,26 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">fv::Container&lt; H &gt; Member List</div>  </div>
+<div class="title">fv::Container&lt; H, V &gt; Member List</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>This is the complete list of members for <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>, including all inherited members.</p>
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_fill</b>()=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, H *container) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

File diff suppressed because it is too large
+ 26 - 19
docs/classfv_1_1Container.html


+ 9 - 8
docs/classfv_1_1ContainerMean-members.html

@@ -72,8 +72,8 @@ $(function() {
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_fill</b>() (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Container</b>(const std::string &amp;name, T *container) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ContainerMean</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>count</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -81,12 +81,13 @@ $(function() {
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>sum</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sum</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 15 - 12
docs/classfv_1_1ContainerMean.html

@@ -82,7 +82,7 @@ Inheritance diagram for fv::ContainerMean&lt; T &gt;:</div>
 <div class="dyncontent">
 <div class="center"><img src="classfv_1_1ContainerMean__inherit__graph.png" border="0" usemap="#fv_1_1ContainerMean_3_01T_01_4_inherit__map" alt="Inheritance graph"/></div>
 <map name="fv_1_1ContainerMean_3_01T_01_4_inherit__map" id="fv_1_1ContainerMean_3_01T_01_4_inherit__map">
-<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="23,80,166,107"/>
+<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="15,80,174,107"/>
 <area shape="rect" id="node3" href="classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="29,5,160,32"/>
 </map>
 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
@@ -91,7 +91,7 @@ Collaboration diagram for fv::ContainerMean&lt; T &gt;:</div>
 <div class="dyncontent">
 <div class="center"><img src="classfv_1_1ContainerMean__coll__graph.png" border="0" usemap="#fv_1_1ContainerMean_3_01T_01_4_coll__map" alt="Collaboration graph"/></div>
 <map name="fv_1_1ContainerMean_3_01T_01_4_coll__map" id="fv_1_1ContainerMean_3_01T_01_4_coll__map">
-<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="23,80,166,107"/>
+<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="15,80,174,107"/>
 <area shape="rect" id="node3" href="classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="29,5,160,32"/>
 </map>
 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
@@ -107,10 +107,13 @@ T *&#160;</td><td class="memItemRight" valign="bottom"><b>get_container</b> ()</
 <tr class="memitem:a9fa3d582ae665ea4f5ee1c7215fe0ff0"><td class="memItemLeft" align="right" valign="top"><a id="a9fa3d582ae665ea4f5ee1c7215fe0ff0"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>save_as</b> (const std::string &amp;fname)</td></tr>
 <tr class="separator:a9fa3d582ae665ea4f5ee1c7215fe0ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classfv_1_1Container"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Container')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a></td></tr>
-<tr class="memitem:af182df68521c2b1f61f5b6c330508255 inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="af182df68521c2b1f61f5b6c330508255"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>Container</b> (const std::string &amp;name, T *container)</td></tr>
-<tr class="separator:af182df68521c2b1f61f5b6c330508255 inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1Container"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Container')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td></tr>
+<tr class="memitem:a7d13e0636a4778fa6aa2fcdd47ecf9ff inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a7d13e0636a4778fa6aa2fcdd47ecf9ff"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Container</b> (const std::string &amp;name, <a class="el" href="classfv_1_1Value.html">Value</a>&lt; T &gt; *value)</td></tr>
+<tr class="separator:a7d13e0636a4778fa6aa2fcdd47ecf9ff inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8712167dfa8443506dc312785719eeab inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a8712167dfa8443506dc312785719eeab"></a>
+virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
+<tr class="separator:a8712167dfa8443506dc312785719eeab inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classfv_1_1GenContainer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1GenContainer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td></tr>
 <tr class="memitem:acd03ede0e7e0cf362011e5614c787c7b inherit pub_methods_classfv_1_1GenContainer"><td class="memItemLeft" align="right" valign="top"><a id="acd03ede0e7e0cf362011e5614c787c7b"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>GenContainer</b> (const std::string name, const std::string &amp;desc)</td></tr>
@@ -145,9 +148,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>_fill</b> ()</td></tr
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
-<tr class="memitem:aa772cde78fd0971d1ebba909aff491c1"><td class="memItemLeft" align="right" valign="top"><a id="aa772cde78fd0971d1ebba909aff491c1"></a>
-<a class="el" href="classfv_1_1Value.html">Value</a>&lt; T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
-<tr class="separator:aa772cde78fd0971d1ebba909aff491c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39cdef23a358ab46173eaa588e59ce49"><td class="memItemLeft" align="right" valign="top"><a id="a39cdef23a358ab46173eaa588e59ce49"></a>
 int&#160;</td><td class="memItemRight" valign="bottom"><b>count</b></td></tr>
 <tr class="separator:a39cdef23a358ab46173eaa588e59ce49"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -157,10 +157,13 @@ T&#160;</td><td class="memItemRight" valign="bottom"><b>sum</b></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pro_attribs_classfv_1_1Container"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Container')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T &gt;</a></td></tr>
-<tr class="memitem:aa5e74e62f69e756cad950fdc94e9a8c0 inherit pro_attribs_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="aa5e74e62f69e756cad950fdc94e9a8c0"></a>
+<tr class="inherit_header pro_attribs_classfv_1_1Container"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Container')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td></tr>
+<tr class="memitem:a22df8e92a737294683e8d7fdec450a35 inherit pro_attribs_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a22df8e92a737294683e8d7fdec450a35"></a>
 T *&#160;</td><td class="memItemRight" valign="bottom"><b>container</b></td></tr>
-<tr class="separator:aa5e74e62f69e756cad950fdc94e9a8c0 inherit pro_attribs_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a22df8e92a737294683e8d7fdec450a35 inherit pro_attribs_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7188edd751c7bfca3b683654a928b2c6 inherit pro_attribs_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a7188edd751c7bfca3b683654a928b2c6"></a>
+<a class="el" href="classfv_1_1Value.html">Value</a>&lt; T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
+<tr class="separator:a7188edd751c7bfca3b683654a928b2c6 inherit pro_attribs_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 1 - 1
docs/classfv_1_1ContainerMean__coll__graph.map

@@ -1,4 +1,4 @@
 <map id="fv::ContainerMean&lt; T &gt;" name="fv::ContainerMean&lt; T &gt;">
-<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="23,80,166,107"/>
+<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="15,80,174,107"/>
 <area shape="rect" id="node3" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="29,5,160,32"/>
 </map>

+ 1 - 1
docs/classfv_1_1ContainerMean__coll__graph.md5

@@ -1 +1 @@
-b1fc6e46b02c72450d98ebba2d7ed136
+c5d49a77347d6984effaefa4d2a67bd7

BIN
docs/classfv_1_1ContainerMean__coll__graph.png


+ 1 - 1
docs/classfv_1_1ContainerMean__inherit__graph.map

@@ -1,4 +1,4 @@
 <map id="fv::ContainerMean&lt; T &gt;" name="fv::ContainerMean&lt; T &gt;">
-<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="23,80,166,107"/>
+<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="15,80,174,107"/>
 <area shape="rect" id="node3" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="29,5,160,32"/>
 </map>

+ 1 - 1
docs/classfv_1_1ContainerMean__inherit__graph.md5

@@ -1 +1 @@
-783328f4a2563aa3b9774f5a5d77597d
+c4a73fb5e809f0b7bb0e26a415674690

BIN
docs/classfv_1_1ContainerMean__inherit__graph.png


+ 3 - 2
docs/classfv_1_1Container__coll__graph.map

@@ -1,3 +1,4 @@
-<map id="fv::Container&lt; H &gt;" name="fv::Container&lt; H &gt;">
-<area shape="rect" id="node2" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="13,5,143,32"/>
+<map id="fv::Container&lt; H, V &gt;" name="fv::Container&lt; H, V &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="5,5,136,32"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; V \&gt;" alt="" coords="160,5,277,32"/>
 </map>

+ 1 - 1
docs/classfv_1_1Container__coll__graph.md5

@@ -1 +1 @@
-895624577a76eb65b90f95597d24dbe2
+b31a34d6705e9cca5f142ba536ab195a

BIN
docs/classfv_1_1Container__coll__graph.png


+ 2 - 2
docs/classfv_1_1Container__inherit__graph.map

@@ -1,3 +1,3 @@
-<map id="fv::Container&lt; H &gt;" name="fv::Container&lt; H &gt;">
-<area shape="rect" id="node2" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="13,5,143,32"/>
+<map id="fv::Container&lt; H, V &gt;" name="fv::Container&lt; H, V &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1GenContainer.html" title="Generic, untyped parent class of Container. " alt="" coords="21,5,152,32"/>
 </map>

+ 1 - 1
docs/classfv_1_1Container__inherit__graph.md5

@@ -1 +1 @@
-567fed99a395b1bf3bbd03df687cdcfa
+408a9655b2c8a416870839f13555be4a

BIN
docs/classfv_1_1Container__inherit__graph.png


+ 24 - 18
docs/classfv_1_1Count-members.html

@@ -70,24 +70,30 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Count</b>(Function&lt; bool(T)&gt; &amp;selector, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>selector</b> (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1Count.html#afff1c16a8747a82db1cc1c8248c56a08">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Count</b>(Function&lt; bool(T)&gt; &amp;selector, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(int)&gt; &amp;value_to_string=[](int){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>selector</b> (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1Count.html#afff1c16a8747a82db1cc1c8248c56a08">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Count.html">fv::Count&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; int &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1Count.html

@@ -106,6 +106,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 int &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -114,6 +117,12 @@ int &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(int)&gt; &amp;value_to_string=[](int){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -136,9 +145,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 int&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; int &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(int)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

File diff suppressed because it is too large
+ 105 - 0
docs/classfv_1_1DeTup-members.html


+ 199 - 0
docs/classfv_1_1DeTup.html

@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>TTTT Analysis: fv::DeTup&lt; N, ArgTypes &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">TTTT Analysis
+   &#160;<span id="projectnumber">0.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacefv.html">fv</a></li><li class="navelem"><a class="el" href="classfv_1_1DeTup.html">DeTup</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classfv_1_1DeTup-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">fv::DeTup&lt; N, ArgTypes &gt; Class Template Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Gets the Nth element from a tuple value.  
+ <a href="classfv_1_1DeTup.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="value_8hpp_source.html">value.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for fv::DeTup&lt; N, ArgTypes &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1DeTup__inherit__graph.png" border="0" usemap="#fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_inherit__map" id="fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_inherit__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple_element\&lt; N, std\l::tuple\&lt; ArgTypes... \&gt;\l \&gt;::type \&gt;" alt="" coords="12,109,189,180"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt;" alt="" coords="5,5,196,61"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for fv::DeTup&lt; N, ArgTypes &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1DeTup__coll__graph.png" border="0" usemap="#fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_coll__map" alt="Collaboration graph"/></div>
+<map name="fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_coll__map" id="fv_1_1DeTup_3_01N_00_01ArgTypes_01_4_coll__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple_element\&lt; N, std\l::tuple\&lt; ArgTypes... \&gt;\l \&gt;::type \&gt;" alt="" coords="245,5,423,76"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt;" alt="" coords="5,13,196,69"/>
+<area shape="rect" id="node4" href="classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="257,100,411,141"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a058cf3ad869e9b68a5eefad9dbc20293"><td class="memItemLeft" align="right" valign="top"><a id="a058cf3ad869e9b68a5eefad9dbc20293"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>DeTup</b> (<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::tuple&lt; ArgTypes... &gt;&gt; *tup, const std::string &amp;alias)</td></tr>
+<tr class="separator:a058cf3ad869e9b68a5eefad9dbc20293"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;</a></td></tr>
+<tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
+std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
+<tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
+<tr class="separator:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;</a></td></tr>
+<tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type)&gt; &amp;value_to_string=[](std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a9b49bc088a2c98356dec7709e7da8261"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DeTup.html#a9b49bc088a2c98356dec7709e7da8261">update_value</a> ()</td></tr>
+<tr class="memdesc:a9b49bc088a2c98356dec7709e7da8261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the internal value.  <a href="#a9b49bc088a2c98356dec7709e7da8261">More...</a><br /></td></tr>
+<tr class="separator:a9b49bc088a2c98356dec7709e7da8261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a358d83ac7d1e48c704027c7861fa5b7f"><td class="memItemLeft" align="right" valign="top"><a id="a358d83ac7d1e48c704027c7861fa5b7f"></a>
+<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::tuple&lt; ArgTypes... &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>tup</b></td></tr>
+<tr class="separator:a358d83ac7d1e48c704027c7861fa5b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;</a></td></tr>
+<tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
+std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
+<tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;size_t N, typename... ArgTypes&gt;<br />
+class fv::DeTup&lt; N, ArgTypes &gt;</h3>
+
+<p>Gets the Nth element from a tuple value. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a9b49bc088a2c98356dec7709e7da8261"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9b49bc088a2c98356dec7709e7da8261">&#9670;&nbsp;</a></span>update_value()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;size_t N, typename... ArgTypes&gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="classfv_1_1DeTup.html">fv::DeTup</a>&lt; N, ArgTypes &gt;::update_value </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Updates the internal value. </p>
+<p>This function should be overridden by any child class to do the actual work of updating value based on whatever rules the class chooses. Normally, this consists of geting the values from some associated <a class="el" href="classfv_1_1Value.html" title="A generic value. ">Value</a> objects, doing some calculation on them, and storing the result in value. </p>
+
+<p>Implements <a class="el" href="classfv_1_1DerivedValue.html#ae59e80a98eb74b95d8961bfe12ee5ec2">fv::DerivedValue&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/caleb/Sources/TTTT/filval/<a class="el" href="value_8hpp_source.html">value.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>

File diff suppressed because it is too large
+ 105 - 0
docs/classfv_1_1DeTupVector-members.html


+ 199 - 0
docs/classfv_1_1DeTupVector.html

@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>TTTT Analysis: fv::DeTupVector&lt; N, ArgTypes &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">TTTT Analysis
+   &#160;<span id="projectnumber">0.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacefv.html">fv</a></li><li class="navelem"><a class="el" href="classfv_1_1DeTupVector.html">DeTupVector</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classfv_1_1DeTupVector-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">fv::DeTupVector&lt; N, ArgTypes &gt; Class Template Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Creates a vector of extracting the Nth value from each entry in a vector of tuples.  
+ <a href="classfv_1_1DeTupVector.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="value_8hpp_source.html">value.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for fv::DeTupVector&lt; N, ArgTypes &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1DeTupVector__inherit__graph.png" border="0" usemap="#fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_inherit__map" id="fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_inherit__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="244,5,449,76"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple_element\&lt;\l N, std::tuple\&lt; ArgTypes...\l \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="5,5,196,76"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for fv::DeTupVector&lt; N, ArgTypes &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="classfv_1_1DeTupVector__coll__graph.png" border="0" usemap="#fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_coll__map" alt="Collaboration graph"/></div>
+<map name="fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_coll__map" id="fv_1_1DeTupVector_3_01N_00_01ArgTypes_01_4_coll__map">
+<area shape="rect" id="node2" href="classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="257,5,463,76"/>
+<area shape="rect" id="node3" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple_element\&lt;\l N, std::tuple\&lt; ArgTypes...\l \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="5,5,196,76"/>
+<area shape="rect" id="node4" href="classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple\&lt; ArgTypes... \&gt; \&gt; \&gt;" alt="" coords="245,100,475,141"/>
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a170fe103c6fd5edeb41860c6cb5b185c"><td class="memItemLeft" align="right" valign="top"><a id="a170fe103c6fd5edeb41860c6cb5b185c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>DeTupVector</b> (<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt;&gt;&gt; *tup, const std::string &amp;alias)</td></tr>
+<tr class="separator:a170fe103c6fd5edeb41860c6cb5b185c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
+std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
+<tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
+<tr class="separator:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
+<tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;)&gt; &amp;value_to_string=[](std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a667043bb8851d8eb56d051e62e6d9646"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DeTupVector.html#a667043bb8851d8eb56d051e62e6d9646">update_value</a> ()</td></tr>
+<tr class="memdesc:a667043bb8851d8eb56d051e62e6d9646"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the internal value.  <a href="#a667043bb8851d8eb56d051e62e6d9646">More...</a><br /></td></tr>
+<tr class="separator:a667043bb8851d8eb56d051e62e6d9646"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a906b727b223dac94456d96139f52fb51"><td class="memItemLeft" align="right" valign="top"><a id="a906b727b223dac94456d96139f52fb51"></a>
+<a class="el" href="classfv_1_1Value.html">Value</a>&lt; std::vector&lt; std::tuple&lt; ArgTypes... &gt; &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>tup</b></td></tr>
+<tr class="separator:a906b727b223dac94456d96139f52fb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1DerivedValue"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1DerivedValue')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
+std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
+<tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;size_t N, typename... ArgTypes&gt;<br />
+class fv::DeTupVector&lt; N, ArgTypes &gt;</h3>
+
+<p>Creates a vector of extracting the Nth value from each entry in a vector of tuples. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a667043bb8851d8eb56d051e62e6d9646"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a667043bb8851d8eb56d051e62e6d9646">&#9670;&nbsp;</a></span>update_value()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;size_t N, typename... ArgTypes&gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="classfv_1_1DeTupVector.html">fv::DeTupVector</a>&lt; N, ArgTypes &gt;::update_value </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Updates the internal value. </p>
+<p>This function should be overridden by any child class to do the actual work of updating value based on whatever rules the class chooses. Normally, this consists of geting the values from some associated <a class="el" href="classfv_1_1Value.html" title="A generic value. ">Value</a> objects, doing some calculation on them, and storing the result in value. </p>
+
+<p>Implements <a class="el" href="classfv_1_1DerivedValue.html#ae59e80a98eb74b95d8961bfe12ee5ec2">fv::DerivedValue&lt; std::vector&lt; std::tuple_element&lt; N, std::tuple&lt; ArgTypes... &gt; &gt;::type &gt; &gt;</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/caleb/Sources/TTTT/filval/<a class="el" href="value_8hpp_source.html">value.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>

+ 5 - 0
docs/classfv_1_1DeTupVector__coll__graph.map

@@ -0,0 +1,5 @@
+<map id="fv::DeTupVector&lt; N, ArgTypes &gt;" name="fv::DeTupVector&lt; N, ArgTypes &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="257,5,463,76"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple_element\&lt;\l N, std::tuple\&lt; ArgTypes...\l \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="5,5,196,76"/>
+<area shape="rect" id="node4" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple\&lt; ArgTypes... \&gt; \&gt; \&gt;" alt="" coords="245,100,475,141"/>
+</map>

+ 1 - 0
docs/classfv_1_1DeTupVector__coll__graph.md5

@@ -0,0 +1 @@
+88dc36e39afb45c9042c9e5bd3389297

BIN
docs/classfv_1_1DeTupVector__coll__graph.png


+ 4 - 0
docs/classfv_1_1DeTupVector__inherit__graph.map

@@ -0,0 +1,4 @@
+<map id="fv::DeTupVector&lt; N, ArgTypes &gt;" name="fv::DeTupVector&lt; N, ArgTypes &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::vector\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="244,5,449,76"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::vector\l\&lt; std::tuple_element\&lt;\l N, std::tuple\&lt; ArgTypes...\l \&gt; \&gt;::type \&gt; \&gt;" alt="" coords="5,5,196,76"/>
+</map>

+ 1 - 0
docs/classfv_1_1DeTupVector__inherit__graph.md5

@@ -0,0 +1 @@
+c3064783421b4b1857fda8004fef8bcd

BIN
docs/classfv_1_1DeTupVector__inherit__graph.png


+ 5 - 0
docs/classfv_1_1DeTup__coll__graph.map

@@ -0,0 +1,5 @@
+<map id="fv::DeTup&lt; N, ArgTypes &gt;" name="fv::DeTup&lt; N, ArgTypes &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple_element\&lt; N, std\l::tuple\&lt; ArgTypes... \&gt;\l \&gt;::type \&gt;" alt="" coords="245,5,423,76"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt;" alt="" coords="5,13,196,69"/>
+<area shape="rect" id="node4" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l\&lt; ArgTypes... \&gt; \&gt;" alt="" coords="257,100,411,141"/>
+</map>

+ 1 - 0
docs/classfv_1_1DeTup__coll__graph.md5

@@ -0,0 +1 @@
+3823b90d25f124cb9c2690f0c44d4da0

BIN
docs/classfv_1_1DeTup__coll__graph.png


+ 4 - 0
docs/classfv_1_1DeTup__inherit__graph.map

@@ -0,0 +1,4 @@
+<map id="fv::DeTup&lt; N, ArgTypes &gt;" name="fv::DeTup&lt; N, ArgTypes &gt;">
+<area shape="rect" id="node2" href="$classfv_1_1DerivedValue.html" title="fv::DerivedValue\&lt; std\l::tuple_element\&lt; N, std\l::tuple\&lt; ArgTypes... \&gt;\l \&gt;::type \&gt;" alt="" coords="12,109,189,180"/>
+<area shape="rect" id="node3" href="$classfv_1_1Value.html" title="fv::Value\&lt; std::tuple\l_element\&lt; N, std::tuple\l\&lt; ArgTypes... \&gt; \&gt;::type \&gt;" alt="" coords="5,5,196,61"/>
+</map>

+ 1 - 0
docs/classfv_1_1DeTup__inherit__graph.md5

@@ -0,0 +1 @@
+eaa48600c92f825946d3009d45b1eb9a

BIN
docs/classfv_1_1DeTup__inherit__graph.png


+ 10 - 5
docs/classfv_1_1DerivedValue-members.html

@@ -70,23 +70,28 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#ae59e80a98eb74b95d8961bfe12ee5ec2">update_value</a>()=0</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

File diff suppressed because it is too large
+ 14 - 11
docs/classfv_1_1DerivedValue.html


+ 21 - 15
docs/classfv_1_1ElementOf-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1ElementOf.html">fv::ElementOf&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ElementOf</b>(Value&lt; int &gt; *index, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1ElementOf.html">fv::ElementOf&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ElementOf.html">fv::ElementOf&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1ElementOf.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -129,9 +138,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 23 - 17
docs/classfv_1_1Filter-members.html

@@ -70,24 +70,30 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Filter</b>(Function&lt; bool(T)&gt; &amp;filter, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>filter</b> (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classfv_1_1Filter.html#a3666dcad055ca8b0f7c7ab675f5eb57d">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(std::vector&lt; T &gt;)&gt; &amp;value_to_string=[](std::vector&lt; T &gt;){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Filter</b>(Function&lt; bool(T)&gt; &amp;filter, Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>filter</b> (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1Filter.html#a3666dcad055ca8b0f7c7ab675f5eb57d">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Filter.html">fv::Filter&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 14 - 4
docs/classfv_1_1Filter.html

@@ -105,6 +105,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::vector&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -113,6 +116,12 @@ std::vector&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom">
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::vector&lt; T &gt;)&gt; &amp;value_to_string=[](std::vector&lt; T &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -135,9 +144,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; T &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::vector&lt; T &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />
@@ -151,7 +161,7 @@ class fv::Filter&lt; T &gt;</h3>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename T &gt; </div>
+template&lt;typename T&gt; </div>
 <table class="mlabels">
   <tr>
   <td class="mlabels-left">

+ 5 - 4
docs/classfv_1_1GenContainer-members.html

@@ -78,10 +78,11 @@ $(function() {
   <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>name</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>name</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 15 - 9
docs/classfv_1_1GenContainer.html

@@ -82,15 +82,18 @@ Inheritance diagram for fv::GenContainer:</div>
 <div class="dyncontent">
 <div class="center"><img src="classfv_1_1GenContainer__inherit__graph.png" border="0" usemap="#fv_1_1GenContainer_inherit__map" alt="Inheritance graph"/></div>
 <map name="fv_1_1GenContainer_inherit__map" id="fv_1_1GenContainer_inherit__map">
-<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt; \&gt;" alt="" coords="205,5,345,47"/>
-<area shape="rect" id="node3" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt; \&gt;" alt="" coords="205,71,345,112"/>
-<area shape="rect" id="node4" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt; \&gt;" alt="" coords="205,136,345,177"/>
-<area shape="rect" id="node5" href="classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="204,202,347,229"/>
-<area shape="rect" id="node7" href="classfv_1_1Container.html" title="fv::Container\&lt; TGraph \&gt;" alt="" coords="184,253,367,279"/>
-<area shape="rect" id="node8" href="classfv_1_1Container.html" title="fv::Container\&lt; TH1 \&gt;" alt="" coords="195,303,356,330"/>
-<area shape="rect" id="node9" href="classfv_1_1Container.html" title="fv::Container\&lt; TH2 \&gt;" alt="" coords="195,354,356,381"/>
-<area shape="rect" id="node10" href="classfv_1_1Container.html" title="A class that is used to &quot;hold&quot; values. " alt="" coords="203,405,348,431"/>
-<area shape="rect" id="node6" href="classfv_1_1ContainerMean.html" title="Calculate the Mean of a Value over a series of observations. " alt="" coords="415,202,593,229"/>
+<area shape="rect" id="node2" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,5,365,47"/>
+<area shape="rect" id="node3" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,71,363,127"/>
+<area shape="rect" id="node4" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,152,365,193"/>
+<area shape="rect" id="node5" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,217,357,259"/>
+<area shape="rect" id="node6" href="classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,283,367,310"/>
+<area shape="rect" id="node8" href="classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,335,373,376"/>
+<area shape="rect" id="node9" href="classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,400,363,441"/>
+<area shape="rect" id="node10" href="classfv_1_1Container.html" title="fv::Container\&lt; TH1, V \&gt;" alt="" coords="198,466,377,493"/>
+<area shape="rect" id="node11" href="classfv_1_1Container.html" title="fv::Container\&lt; TH2,\l std::pair\&lt; std::vector\l\&lt; V \&gt;, std::vector\&lt; V \&gt; \&gt; \&gt;" alt="" coords="184,517,391,573"/>
+<area shape="rect" id="node12" href="classfv_1_1Container.html" title="fv::Container\&lt; TH2,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="212,597,363,639"/>
+<area shape="rect" id="node13" href="classfv_1_1Container.html" title="A class that is used to &quot;hold&quot; values. " alt="" coords="206,663,369,690"/>
+<area shape="rect" id="node7" href="classfv_1_1ContainerMean.html" title="Calculate the Mean of a Value over a series of observations. " alt="" coords="439,283,617,310"/>
 </map>
 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
 <table class="memberdecls">
@@ -114,6 +117,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>set_description</b> (
 <tr class="memitem:ad21df0a48fca797ff0cc9fec6a0d46f9"><td class="memItemLeft" align="right" valign="top"><a id="ad21df0a48fca797ff0cc9fec6a0d46f9"></a>
 const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> ()</td></tr>
 <tr class="separator:ad21df0a48fca797ff0cc9fec6a0d46f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e50daedf82bcf2e519fe153591e9c3b"><td class="memItemLeft" align="right" valign="top"><a id="a2e50daedf82bcf2e519fe153591e9c3b"></a>
+virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
+<tr class="separator:a2e50daedf82bcf2e519fe153591e9c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9c4dd0c4bf7017525c2091f356d67d50"><td class="memItemLeft" align="right" valign="top"><a id="a9c4dd0c4bf7017525c2091f356d67d50"></a>
 virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>save_as</b> (const std::string &amp;fname, const <a class="el" href="namespacefv.html#a16a191c4b8935d4c7c5aad79fc4ea97e">SaveOption</a> &amp;option)=0</td></tr>
 <tr class="separator:a9c4dd0c4bf7017525c2091f356d67d50"><td class="memSeparator" colspan="2">&#160;</td></tr>

+ 12 - 9
docs/classfv_1_1GenContainer__inherit__graph.map

@@ -1,11 +1,14 @@
 <map id="fv::GenContainer" name="fv::GenContainer">
-<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt; \&gt;" alt="" coords="205,5,345,47"/>
-<area shape="rect" id="node3" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt; \&gt;" alt="" coords="205,71,345,112"/>
-<area shape="rect" id="node4" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt; \&gt;" alt="" coords="205,136,345,177"/>
-<area shape="rect" id="node5" href="$classfv_1_1Container.html" title="fv::Container\&lt; T \&gt;" alt="" coords="204,202,347,229"/>
-<area shape="rect" id="node7" href="$classfv_1_1Container.html" title="fv::Container\&lt; TGraph \&gt;" alt="" coords="184,253,367,279"/>
-<area shape="rect" id="node8" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH1 \&gt;" alt="" coords="195,303,356,330"/>
-<area shape="rect" id="node9" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH2 \&gt;" alt="" coords="195,354,356,381"/>
-<area shape="rect" id="node10" href="$classfv_1_1Container.html" title="A class that is used to &quot;hold&quot; values. " alt="" coords="203,405,348,431"/>
-<area shape="rect" id="node6" href="$classfv_1_1ContainerMean.html" title="Calculate the Mean of a Value over a series of observations. " alt="" coords="415,202,593,229"/>
+<area shape="rect" id="node2" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,5,365,47"/>
+<area shape="rect" id="node3" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,71,363,127"/>
+<area shape="rect" id="node4" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,152,365,193"/>
+<area shape="rect" id="node5" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,217,357,259"/>
+<area shape="rect" id="node6" href="$classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,283,367,310"/>
+<area shape="rect" id="node8" href="$classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,335,373,376"/>
+<area shape="rect" id="node9" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,400,363,441"/>
+<area shape="rect" id="node10" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH1, V \&gt;" alt="" coords="198,466,377,493"/>
+<area shape="rect" id="node11" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH2,\l std::pair\&lt; std::vector\l\&lt; V \&gt;, std::vector\&lt; V \&gt; \&gt; \&gt;" alt="" coords="184,517,391,573"/>
+<area shape="rect" id="node12" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH2,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="212,597,363,639"/>
+<area shape="rect" id="node13" href="$classfv_1_1Container.html" title="A class that is used to &quot;hold&quot; values. " alt="" coords="206,663,369,690"/>
+<area shape="rect" id="node7" href="$classfv_1_1ContainerMean.html" title="Calculate the Mean of a Value over a series of observations. " alt="" coords="439,283,617,310"/>
 </map>

+ 1 - 1
docs/classfv_1_1GenContainer__inherit__graph.md5

@@ -1 +1 @@
-2b55a8931fe465f6194d5c586ec86a77
+895b5418fa0bb77f29d664fab9927d33

BIN
docs/classfv_1_1GenContainer__inherit__graph.png


File diff suppressed because it is too large
+ 24 - 18
docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4-members.html


+ 14 - 5
docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4.html

@@ -107,6 +107,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::vector&lt; Ret &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -115,6 +118,12 @@ std::vector&lt; Ret &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::vector&lt; Ret &gt;)&gt; &amp;value_to_string=[](std::vector&lt; Ret &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
 Private Types</h2></td></tr>
@@ -143,9 +152,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::vector&lt; Ret &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::vector&lt; Ret &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::vector&lt; Ret &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename Ret, typename... ArgTypes&gt;<br />
@@ -188,8 +198,7 @@ Here is the call graph for this function:</div>
 <div class="dyncontent">
 <div class="center"><img src="classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.png" border="0" usemap="#classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph" alt=""/></div>
 <map name="classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph" id="classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph">
-<area shape="rect" id="node2" href="classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="240,5,391,32"/>
-<area shape="rect" id="node3" href="namespacefv.html#a182def996bfac5212fd450627a187ae4" title="This calls a function of type F with the contents of the tuple as separate arguments. " alt="" coords="283,56,348,83"/>
+<area shape="rect" id="node2" href="classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="240,13,391,39"/>
 </map>
 </div>
 

+ 1 - 2
docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.map

@@ -1,4 +1,3 @@
 <map id="fv::Map&lt; Ret(ArgTypes...)&gt;::update_value" name="fv::Map&lt; Ret(ArgTypes...)&gt;::update_value">
-<area shape="rect" id="node2" href="$classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="240,5,391,32"/>
-<area shape="rect" id="node3" href="$namespacefv.html#a182def996bfac5212fd450627a187ae4" title="This calls a function of type F with the contents of the tuple as separate arguments. " alt="" coords="283,56,348,83"/>
+<area shape="rect" id="node2" href="$classfv_1_1Value.html#a4cc70444ceaf5d7651922adf9b7beeff" title="Calculate, if necessary, and return the value held by this object. " alt="" coords="240,13,391,39"/>
 </map>

+ 1 - 1
docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.md5

@@ -1 +1 @@
-bdbc575d18f175354f4be4fdc1a2e972
+ee67461a88c4937d3237bb5383edbda8

BIN
docs/classfv_1_1Map_3_01Ret_07ArgTypes_8_8_8_08_4_acd85576e1e4eb0eb4ef0d4947299478c_cgraph.png


+ 23 - 17
docs/classfv_1_1Max-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Max.html">fv::Max&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Max</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Max.html">fv::Max&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Max.html">fv::Max&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Max</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Max.html">fv::Max&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Max.html">fv::Max&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1Max.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -129,9 +138,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

File diff suppressed because it is too large
+ 22 - 16
docs/classfv_1_1MaxIndex-members.html


+ 13 - 3
docs/classfv_1_1MaxIndex.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::pair&lt; T, int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ std::pair&lt; T, int &gt; &amp;&#160;</td><td class="memItemRight" valign="botto
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::pair&lt; T, int &gt;)&gt; &amp;value_to_string=[](std::pair&lt; T, int &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -125,9 +134,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::pair&lt; T, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::pair&lt; T, int &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::pair&lt; T, int &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 23 - 17
docs/classfv_1_1Mean-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Mean.html">fv::Mean&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Mean</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Mean.html">fv::Mean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Mean.html">fv::Mean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Mean</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Mean.html">fv::Mean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Mean.html">fv::Mean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1Mean.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -129,9 +138,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 23 - 17
docs/classfv_1_1Min-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Min.html">fv::Min&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Min</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Min.html">fv::Min&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Min.html">fv::Min&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Min</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Min.html">fv::Min&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Min.html">fv::Min&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1Min.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -129,9 +138,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

File diff suppressed because it is too large
+ 22 - 16
docs/classfv_1_1MinIndex-members.html


+ 13 - 3
docs/classfv_1_1MinIndex.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::pair&lt; T, int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ std::pair&lt; T, int &gt; &amp;&#160;</td><td class="memItemRight" valign="botto
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::pair&lt; T, int &gt;)&gt; &amp;value_to_string=[](std::pair&lt; T, int &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -125,9 +134,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::pair&lt; T, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::pair&lt; T, int &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::pair&lt; T, int &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 7 - 1
docs/classfv_1_1ObservedValue-members.html

@@ -70,20 +70,26 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html#a10419313294471ba9da25e55d23956ba">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ObservedValue</b>(const std::string &amp;name, T *val_ref, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>val_ref</b> (defined in <a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ObservedValue.html">fv::ObservedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 16 - 7
docs/classfv_1_1ObservedValue.html

@@ -65,7 +65,6 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pri-methods">Private Member Functions</a> &#124;
 <a href="#pri-attribs">Private Attributes</a> &#124;
 <a href="classfv_1_1ObservedValue-members.html">List of all members</a>  </div>
   <div class="headertitle">
@@ -99,6 +98,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a4530da20550883f9e956403cb1cfced4"><td class="memItemLeft" align="right" valign="top"><a id="a4530da20550883f9e956403cb1cfced4"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>ObservedValue</b> (const std::string &amp;name, T *val_ref, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a4530da20550883f9e956403cb1cfced4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f2d7034cdefb68fec70dd6f58b2e5bc"><td class="memItemLeft" align="right" valign="top"><a id="a4f2d7034cdefb68fec70dd6f58b2e5bc"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a4f2d7034cdefb68fec70dd6f58b2e5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10419313294471ba9da25e55d23956ba"><td class="memItemLeft" align="right" valign="top"><a id="a10419313294471ba9da25e55d23956ba"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1ObservedValue.html#a10419313294471ba9da25e55d23956ba">get_value</a> ()</td></tr>
 <tr class="memdesc:a10419313294471ba9da25e55d23956ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -107,18 +109,25 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
-Private Member Functions</h2></td></tr>
-<tr class="memitem:af301f95c27cfa8024105a845ac6a7760"><td class="memItemLeft" align="right" valign="top"><a id="af301f95c27cfa8024105a845ac6a7760"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>_reset</b> ()</td></tr>
-<tr class="separator:af301f95c27cfa8024105a845ac6a7760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
 <tr class="memitem:a18aeb656fc14e2161c7b7710ab944829"><td class="memItemLeft" align="right" valign="top"><a id="a18aeb656fc14e2161c7b7710ab944829"></a>
 T *&#160;</td><td class="memItemRight" valign="bottom"><b>val_ref</b></td></tr>
 <tr class="separator:a18aeb656fc14e2161c7b7710ab944829"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

File diff suppressed because it is too large
+ 22 - 16
docs/classfv_1_1Pair-members.html


+ 13 - 3
docs/classfv_1_1Pair.html

@@ -105,6 +105,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 std::pair&lt; T1, T2 &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -113,6 +116,12 @@ std::pair&lt; T1, T2 &gt; &amp;&#160;</td><td class="memItemRight" valign="botto
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(std::pair&lt; T1, T2 &gt;)&gt; &amp;value_to_string=[](std::pair&lt; T1, T2 &gt;){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
@@ -129,9 +138,10 @@ std::pair&lt; <a class="el" href="classfv_1_1Value.html">Value</a>&lt; T1 &gt; *
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 std::pair&lt; T1, T2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; std::pair&lt; T1, T2 &gt; &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(std::pair&lt; T1, T2 &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T1, typename T2&gt;<br />

+ 22 - 16
docs/classfv_1_1PointerValue-members.html

@@ -70,22 +70,28 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PointerValue</b>(const std::string &amp;name, T *ptr, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1PointerValue.html#a81e39d040919be39c37f845a27343f3e">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T *)&gt; &amp;value_to_string=[](T *){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PointerValue</b>(const std::string &amp;name, T *ptr, const std::string alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1PointerValue.html#a81e39d040919be39c37f845a27343f3e">update_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1PointerValue.html">fv::PointerValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T *&gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1PointerValue.html

@@ -104,6 +104,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T * &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -112,6 +115,12 @@ T * &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value</b> ()
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T *)&gt; &amp;value_to_string=[](T *){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
@@ -125,9 +134,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T *&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T * &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T *)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 22 - 16
docs/classfv_1_1Range-members.html

@@ -70,23 +70,29 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classfv_1_1Range.html">fv::Range&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Range</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Range.html">fv::Range&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Range.html">fv::Range&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>alias</b>(const std::string &amp;name, GenValue *value) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>alias</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>aliases</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DerivedValue</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>disable_logging</b>() (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>enable_logging</b>(const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;}) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenValue</b>(const std::string &amp;name, const std::string &amp;alias) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a>()</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value</b>(const std::string &amp;name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>() (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>logging_enabled</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Range</b>(Value&lt; std::vector&lt; T &gt;&gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Range.html">fv::Range&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Range.html">fv::Range&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reduce</b>(Function&lt; T(std::vector&lt; T &gt;)&gt; &amp;reduce, Value&lt; std::vector&lt; T &gt; &gt; *v, const std::string alias) (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_name</b>(const std::string &amp;new_name) (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>summary</b>() (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>v</b> (defined in <a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Reduce.html">fv::Reduce&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1DerivedValue.html">fv::DerivedValue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Value</b>(const std::string &amp;name, const std::string &amp;alias=&quot;&quot;) (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value_to_string</b> (defined in <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_valid</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>values</b> (defined in <b>fv::GenValue</b>)</td><td class="entry"><a class="el" href="classfv_1_1GenValue.html">fv::GenValue</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->

+ 13 - 3
docs/classfv_1_1Range.html

@@ -110,6 +110,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a00219a17112600afdc060d67d6f95b21"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DerivedValue</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:a00219a17112600afdc060d67d6f95b21 inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a7ac6d7f0a92fb9753f7c0bfcf26b6b0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> ()</td></tr>
+<tr class="separator:a7ac6d7f0a92fb9753f7c0bfcf26b6b0d inherit pub_methods_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="a39970158aa8f6eb062a28037df6e2128"></a>
 T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1DerivedValue.html#a39970158aa8f6eb062a28037df6e2128">get_value</a> ()</td></tr>
 <tr class="memdesc:a39970158aa8f6eb062a28037df6e2128 inherit pub_methods_classfv_1_1DerivedValue"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate, if necessary, and return the value held by this object. <br /></td></tr>
@@ -118,6 +121,12 @@ T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
 <tr class="memitem:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="afded92c24f946c1551c1f1b005f31091"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Value</b> (const std::string &amp;name, const std::string &amp;alias=&quot;&quot;)</td></tr>
 <tr class="separator:afded92c24f946c1551c1f1b005f31091 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a477ab6275568b0c5afbcf92901cc3a6e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_logging</b> (const std::function&lt; std::string(T)&gt; &amp;value_to_string=[](T){return &quot;&quot;;})</td></tr>
+<tr class="separator:a477ab6275568b0c5afbcf92901cc3a6e inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="a8a3517fdba15dcb2c141dbd58fc232b1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>disable_logging</b> ()</td></tr>
+<tr class="separator:a8a3517fdba15dcb2c141dbd58fc232b1 inherit pub_methods_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -129,9 +138,10 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memitem:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aeb7ff5d17ad44b2040fc9930bbcc2c7a"></a>
 T&#160;</td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
 <tr class="separator:aeb7ff5d17ad44b2040fc9930bbcc2c7a inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memItemLeft" align="right" valign="top"><a id="aafa55adbb38dc7fe210ea15e920515dc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>value_valid</b></td></tr>
-<tr class="separator:aafa55adbb38dc7fe210ea15e920515dc inherit pro_attribs_classfv_1_1DerivedValue"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classfv_1_1Value"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfv_1_1Value')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classfv_1_1Value.html">fv::Value&lt; T &gt;</a></td></tr>
+<tr class="memitem:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memItemLeft" align="right" valign="top"><a id="aa0269699348665b8e978c1e848e74abe"></a>
+std::function&lt; std::string(T)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_to_string</b></td></tr>
+<tr class="separator:aa0269699348665b8e978c1e848e74abe inherit pro_attribs_classfv_1_1Value"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename T&gt;<br />

+ 0 - 0
docs/classfv_1_1Reduce-members.html


Some files were not shown because too many files changed in this diff