diff --git a/src/algorithms/activesearch/alg_activesearch.h b/src/algorithms/activesearch/alg_activesearch.h
index 100d51426b5045b52c3ac7c1d92e4ccd9a07bd4a..a7c1bfa33a3e9b159421a285aac26fea9657fc15 100644
--- a/src/algorithms/activesearch/alg_activesearch.h
+++ b/src/algorithms/activesearch/alg_activesearch.h
@@ -14,7 +14,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(AlgorithmACTIVESEARCH);
-VU_PTR_TYPEDEFS(AlgorithmParamsACTIVESEARCH);
+VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsACTIVESEARCH);
 
 /** \brief Class parameters
  *
diff --git a/src/algorithms/algorithm_base.h b/src/algorithms/algorithm_base.h
index e8d1745eb3d555fb7ea33703a7628481ecfb4781..782b7f5c1841fdcb1ea0760842a1c58c274cb659 100644
--- a/src/algorithms/algorithm_base.h
+++ b/src/algorithms/algorithm_base.h
@@ -13,7 +13,7 @@ namespace vision_utils
 
 // Create all pointers
 VU_PTR_TYPEDEFS(AlgorithmBase);
-VU_PTR_TYPEDEFS(AlgorithmParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsBase);
 
 /** \brief Class parameters
  *
diff --git a/src/algorithms/opticalflowpyrlk/alg_opticalflowpyrlk.h b/src/algorithms/opticalflowpyrlk/alg_opticalflowpyrlk.h
index 62f689fb9d0c38a00f8cdf58776bbdcd72133513..74343d0d6d4f8d2391e1b8a0e4f00b393f78fdbf 100644
--- a/src/algorithms/opticalflowpyrlk/alg_opticalflowpyrlk.h
+++ b/src/algorithms/opticalflowpyrlk/alg_opticalflowpyrlk.h
@@ -14,7 +14,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(AlgorithmOPTFLOWPYRLK);
-VU_PTR_TYPEDEFS(AlgorithmParamsOPTFLOWPYRLK);
+VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsOPTFLOWPYRLK);
 
 /** \brief Class parameters
  *
diff --git a/src/algorithms/residualtrilinearity/alg_residualtrilinearity.h b/src/algorithms/residualtrilinearity/alg_residualtrilinearity.h
index 52e1d21b38332505b9d5bad86c66c5657e22ebc8..b4be39c9d2e5b6d809f61d39df9c7d32534efb5e 100644
--- a/src/algorithms/residualtrilinearity/alg_residualtrilinearity.h
+++ b/src/algorithms/residualtrilinearity/alg_residualtrilinearity.h
@@ -10,7 +10,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(AlgorithmRESIDUALTRILINEARITY);
-VU_PTR_TYPEDEFS(AlgorithmParamsRESIDUALTRILINEARITY);
+VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsRESIDUALTRILINEARITY);
 
 /** \brief Class parameters
  *
diff --git a/src/algorithms/trackfeatures/alg_trackfeatures.h b/src/algorithms/trackfeatures/alg_trackfeatures.h
index cdc1c8704c15e4ba3d7ef8dfc88b758feec303c1..334bbe57c05e183831a0b9b84bb2cc5d05ea36eb 100644
--- a/src/algorithms/trackfeatures/alg_trackfeatures.h
+++ b/src/algorithms/trackfeatures/alg_trackfeatures.h
@@ -14,7 +14,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(AlgorithmTRACKFEATURES);
-VU_PTR_TYPEDEFS(AlgorithmParamsTRACKFEATURES);
+VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsTRACKFEATURES);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/akaze/descriptor_akaze.h b/src/descriptors/akaze/descriptor_akaze.h
index 47c724c05fa6dbe76b34c3c4c586436d7d5b2ab0..d01dc79f5447c839e7a6ef55aa7b52939ad17242 100644
--- a/src/descriptors/akaze/descriptor_akaze.h
+++ b/src/descriptors/akaze/descriptor_akaze.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorAKAZE);
-VU_PTR_TYPEDEFS(DescriptorParamsAKAZE);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsAKAZE);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/brief/descriptor_brief.h b/src/descriptors/brief/descriptor_brief.h
index 58f45cfa4cc13bc08ed587f096a661c67e23757f..19e21d35540000cbf1102336ed6766f14e099464 100644
--- a/src/descriptors/brief/descriptor_brief.h
+++ b/src/descriptors/brief/descriptor_brief.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorBRIEF);
-VU_PTR_TYPEDEFS(DescriptorParamsBRIEF);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsBRIEF);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/brisk/descriptor_brisk.h b/src/descriptors/brisk/descriptor_brisk.h
index 34f598e9e2147572922141c67e06e5308863ab1f..c92c8e93b8fd5113cdcea0c7e31c4811c244a66e 100644
--- a/src/descriptors/brisk/descriptor_brisk.h
+++ b/src/descriptors/brisk/descriptor_brisk.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorBRISK);
-VU_PTR_TYPEDEFS(DescriptorParamsBRISK);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsBRISK);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/daisy/descriptor_daisy.h b/src/descriptors/daisy/descriptor_daisy.h
index 1af4d994179c37ae7b2137549aebf7ba58504db8..193ed2b766178d628591cc987987aa4ac748ce50 100644
--- a/src/descriptors/daisy/descriptor_daisy.h
+++ b/src/descriptors/daisy/descriptor_daisy.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorDAISY);
-VU_PTR_TYPEDEFS(DescriptorParamsDAISY);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsDAISY);
 
 /** \DAISY Class parameters
  *
diff --git a/src/descriptors/descriptor_base.h b/src/descriptors/descriptor_base.h
index 948c0e09b5ba2fad9f03e810e0ff2b82ecf34d5d..7d0c6fdf7edc6b93634e6758d0cc81b8d84eb99e 100644
--- a/src/descriptors/descriptor_base.h
+++ b/src/descriptors/descriptor_base.h
@@ -15,7 +15,7 @@ namespace vision_utils
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorBase);
-VU_PTR_TYPEDEFS(DescriptorParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsBase);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/freak/descriptor_freak.h b/src/descriptors/freak/descriptor_freak.h
index 7e15759bcd5ea2e4c287e9d8862161070b62f9bd..516d015685471277aefd207a4e87ba71e8ed8403 100644
--- a/src/descriptors/freak/descriptor_freak.h
+++ b/src/descriptors/freak/descriptor_freak.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorFREAK);
-VU_PTR_TYPEDEFS(DescriptorParamsFREAK);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsFREAK);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/kaze/descriptor_kaze.h b/src/descriptors/kaze/descriptor_kaze.h
index b7d81cef29cf705e69a595829a75bcc255049e2e..d3037565044e619e555404c0303709f9cf872146 100644
--- a/src/descriptors/kaze/descriptor_kaze.h
+++ b/src/descriptors/kaze/descriptor_kaze.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorKAZE);
-VU_PTR_TYPEDEFS(DescriptorParamsKAZE);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsKAZE);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/latch/descriptor_latch.h b/src/descriptors/latch/descriptor_latch.h
index c7fd291b219b8a346d2322a60cfc7c7549800808..780ae5bb8dc755a8ecb3c84b254014b4a84ccf46 100644
--- a/src/descriptors/latch/descriptor_latch.h
+++ b/src/descriptors/latch/descriptor_latch.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorLATCH);
-VU_PTR_TYPEDEFS(DescriptorParamsLATCH);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsLATCH);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/lucid/descriptor_lucid.h b/src/descriptors/lucid/descriptor_lucid.h
index ef1dfe05c22a850dd17e19dd93c14d7fb74d7fc7..db43b2544bec16be64579807f8eff658c0321eeb 100644
--- a/src/descriptors/lucid/descriptor_lucid.h
+++ b/src/descriptors/lucid/descriptor_lucid.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorLUCID);
-VU_PTR_TYPEDEFS(DescriptorParamsLUCID);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsLUCID);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/orb/descriptor_orb.h b/src/descriptors/orb/descriptor_orb.h
index 7bfaec266109512a2c407c1d621404ef1c252cbe..c01e35e1e6262b3a38b7bb442c915c7ef8d1d4fb 100644
--- a/src/descriptors/orb/descriptor_orb.h
+++ b/src/descriptors/orb/descriptor_orb.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorORB);
-VU_PTR_TYPEDEFS(DescriptorParamsORB);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsORB);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/sift/descriptor_sift.h b/src/descriptors/sift/descriptor_sift.h
index e462f2a6e3a49997c45f4630f81844069be4de86..ea69e58fad574d7acb4224f40d5ef375aa8c5fe3 100644
--- a/src/descriptors/sift/descriptor_sift.h
+++ b/src/descriptors/sift/descriptor_sift.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorSIFT);
-VU_PTR_TYPEDEFS(DescriptorParamsSIFT);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsSIFT);
 
 /** \brief Class parameters
  *
diff --git a/src/descriptors/surf/descriptor_surf.h b/src/descriptors/surf/descriptor_surf.h
index 9f788817853ce98f1c8d9c66e8a5cd3a7c744946..f631e07506100b513c32072f65c755d42bc4ded2 100644
--- a/src/descriptors/surf/descriptor_surf.h
+++ b/src/descriptors/surf/descriptor_surf.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DescriptorSURF);
-VU_PTR_TYPEDEFS(DescriptorParamsSURF);
+VU_STRUCT_PTR_TYPEDEFS(DescriptorParamsSURF);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/agast/detector_agast.h b/src/detectors/agast/detector_agast.h
index b0a1542b89ab0be4050070d528782f46cf99f170..1cd75fa4c8e652bf0d9b66e2728520aeeb559ff2 100644
--- a/src/detectors/agast/detector_agast.h
+++ b/src/detectors/agast/detector_agast.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorAGAST);
-VU_PTR_TYPEDEFS(DetectorParamsAGAST);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsAGAST);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/akaze/detector_akaze.h b/src/detectors/akaze/detector_akaze.h
index 69f49e6cb3eff05b3bcf9370704efa6f4fea8de8..e950b8c3dc039650e5097b9ca34347188aeff26e 100644
--- a/src/detectors/akaze/detector_akaze.h
+++ b/src/detectors/akaze/detector_akaze.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorAKAZE);
-VU_PTR_TYPEDEFS(DetectorParamsAKAZE);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsAKAZE);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/brisk/detector_brisk.h b/src/detectors/brisk/detector_brisk.h
index 9c1f39c935a6d2feee8704bdac341b96c679233d..1431cf0eb0342ce34f463bc3b90605598ab83486 100644
--- a/src/detectors/brisk/detector_brisk.h
+++ b/src/detectors/brisk/detector_brisk.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorBRISK);
-VU_PTR_TYPEDEFS(DetectorParamsBRISK);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsBRISK);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/detector_base.h b/src/detectors/detector_base.h
index bd55c0a9c1b2ae69a0c23f83e638b51947889130..c4c75fff18eee9a9d012e44be9c415e3a3580e95 100644
--- a/src/detectors/detector_base.h
+++ b/src/detectors/detector_base.h
@@ -15,7 +15,7 @@ namespace vision_utils
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorBase);
-VU_PTR_TYPEDEFS(DetectorParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsBase);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/fast/detector_fast.h b/src/detectors/fast/detector_fast.h
index 5db5fcb2b8f9c04a5c2d19a072f41c9c04805470..b9e804498faafff72570519495e7a3610d58f523 100644
--- a/src/detectors/fast/detector_fast.h
+++ b/src/detectors/fast/detector_fast.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorFAST);
-VU_PTR_TYPEDEFS(DetectorParamsFAST);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsFAST);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/gftt/detector_gftt.h b/src/detectors/gftt/detector_gftt.h
index 874c60405651ae1a0f40047a1bad0799b73cb0bb..5932056ffd0125e64deb829a330af90df94ca7c9 100644
--- a/src/detectors/gftt/detector_gftt.h
+++ b/src/detectors/gftt/detector_gftt.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorGFTT);
-VU_PTR_TYPEDEFS(DetectorParamsGFTT);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsGFTT);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/harris/detector_harris.h b/src/detectors/harris/detector_harris.h
index 0a24e2d50c64417e6bb6f01350ec3607602099da..b724bea766a4dba51298d86df377d18d0dc59347 100644
--- a/src/detectors/harris/detector_harris.h
+++ b/src/detectors/harris/detector_harris.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorHARRIS);
-VU_PTR_TYPEDEFS(DetectorParamsHARRIS);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsHARRIS);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/kaze/detector_kaze.h b/src/detectors/kaze/detector_kaze.h
index 47283de370636ce2bfd9793c87b3f3ea3cc72eb0..841d0896ce64704e63855102122f14977b447017 100644
--- a/src/detectors/kaze/detector_kaze.h
+++ b/src/detectors/kaze/detector_kaze.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorKAZE);
-VU_PTR_TYPEDEFS(DetectorParamsKAZE);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsKAZE);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/mser/detector_mser.h b/src/detectors/mser/detector_mser.h
index d8b7af342936fd74690bb97a95a51b7cddc12f9d..ef94cceaa314db14bc49a1f8e5e1e6020fc51ee9 100644
--- a/src/detectors/mser/detector_mser.h
+++ b/src/detectors/mser/detector_mser.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorMSER);
-VU_PTR_TYPEDEFS(DetectorParamsMSER);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsMSER);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/orb/detector_orb.h b/src/detectors/orb/detector_orb.h
index 5bd6a1d465901768c7f5262106fb5761c2d6c045..8fa2c1d6416a731becfdeb4ee6740daa7d61949c 100644
--- a/src/detectors/orb/detector_orb.h
+++ b/src/detectors/orb/detector_orb.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorORB);
-VU_PTR_TYPEDEFS(DetectorParamsORB);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsORB);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/quickharris/detector_quickharris.h b/src/detectors/quickharris/detector_quickharris.h
index 0c985e76f651d11ac4b6a777ed880462e04f1977..1423b82ae80a2af51a7a5340c7625e6125ccc72d 100644
--- a/src/detectors/quickharris/detector_quickharris.h
+++ b/src/detectors/quickharris/detector_quickharris.h
@@ -107,7 +107,7 @@ private:
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorQUICKHARRIS);
-VU_PTR_TYPEDEFS(DetectorParamsQUICKHARRIS);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsQUICKHARRIS);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/sbd/detector_sbd.h b/src/detectors/sbd/detector_sbd.h
index f0c0a0e3590b99cdf2d9df84e188f7c3aa5abedc..a8f82b6e8a0689b859bd52faff89f1e1d84ba929 100644
--- a/src/detectors/sbd/detector_sbd.h
+++ b/src/detectors/sbd/detector_sbd.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorSBD);
-VU_PTR_TYPEDEFS(DetectorParamsSBD);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsSBD);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/sift/detector_sift.h b/src/detectors/sift/detector_sift.h
index fe9f2594f1a7dbc357186af575e85bc39e8bc6d2..8b90266eb91abaea0bec9e640011ead218bb966a 100644
--- a/src/detectors/sift/detector_sift.h
+++ b/src/detectors/sift/detector_sift.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorSIFT);
-VU_PTR_TYPEDEFS(DetectorParamsSIFT);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsSIFT);
 
 /** \brief Class parameters
  *
diff --git a/src/detectors/surf/detector_surf.h b/src/detectors/surf/detector_surf.h
index 30520c7b653821091c1d2e2cd2749a13b416be6c..8c512141ce068262b7b6c9a3e787a0cdd53f2b72 100644
--- a/src/detectors/surf/detector_surf.h
+++ b/src/detectors/surf/detector_surf.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(DetectorSURF);
-VU_PTR_TYPEDEFS(DetectorParamsSURF);
+VU_STRUCT_PTR_TYPEDEFS(DetectorParamsSURF);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/bruteforce/matcher_bruteforce.h b/src/matchers/bruteforce/matcher_bruteforce.h
index d08194c63440265ec3b163dbb004400aff5aba5e..24fb66d6bceb0f286bf25ae6e2be6dba13546238 100644
--- a/src/matchers/bruteforce/matcher_bruteforce.h
+++ b/src/matchers/bruteforce/matcher_bruteforce.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherBRUTEFORCE);
-VU_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming.h b/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming.h
index bf0f86add7ed473be1e8fbfcbc3cf3cea6478645..1c6ad073d0283f24f67c3af159d612cdf49b3fce 100644
--- a/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming.h
+++ b/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherBRUTEFORCE_HAMMING);
-VU_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_HAMMING);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_HAMMING);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2.h b/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2.h
index cc3d3b8037b64838d9cce56ea864e94bbf920bd2..9b7e00b667e9b993fffa7ec799be2d220c8f19d4 100644
--- a/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2.h
+++ b/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherBRUTEFORCE_HAMMING_2);
-VU_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_HAMMING_2);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_HAMMING_2);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/bruteforce_l1/matcher_bruteforce_l1.h b/src/matchers/bruteforce_l1/matcher_bruteforce_l1.h
index 8b0b244bb8df86d8e2c4f3b89e116dafc38339e9..e2c44f2d58d752468c6a6b39c4a8b35969915fc7 100644
--- a/src/matchers/bruteforce_l1/matcher_bruteforce_l1.h
+++ b/src/matchers/bruteforce_l1/matcher_bruteforce_l1.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherBRUTEFORCE_L1);
-VU_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_L1);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE_L1);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/flannbased/matcher_flannbased.h b/src/matchers/flannbased/matcher_flannbased.h
index d2a1b3a0c45fa9e86de090ca9c830b695041388a..d30be93fd6e195bfb60e6434609d0c40981ed314 100644
--- a/src/matchers/flannbased/matcher_flannbased.h
+++ b/src/matchers/flannbased/matcher_flannbased.h
@@ -8,7 +8,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherFLANNBASED);
-VU_PTR_TYPEDEFS(MatcherParamsFLANNBASED);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsFLANNBASED);
 
 /** \brief Class parameters
  *
diff --git a/src/matchers/matcher_base.h b/src/matchers/matcher_base.h
index 146a4f55a49176dabebfb23dcfa4bf2affb49a02..d6daf08133c7486a8484c949aecdd54756e1afd1 100644
--- a/src/matchers/matcher_base.h
+++ b/src/matchers/matcher_base.h
@@ -22,7 +22,7 @@ namespace vision_utils
 
 // Create all pointers
 VU_PTR_TYPEDEFS(MatcherBase);
-VU_PTR_TYPEDEFS(MatcherParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(MatcherParamsBase);
 
 enum MATCH_TYPE{
 	MATCH = 1,
diff --git a/src/sensors/sensor_base.h b/src/sensors/sensor_base.h
index c27512f954a8d042fad78030861203ecfcd05d04..ee1b8859f56271a10c4b8bb562b9cca67b1158ad 100644
--- a/src/sensors/sensor_base.h
+++ b/src/sensors/sensor_base.h
@@ -13,7 +13,7 @@ namespace vision_utils
 
 // Create all pointers
 VU_PTR_TYPEDEFS(SensorBase);
-VU_PTR_TYPEDEFS(SensorParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(SensorParamsBase);
 
 /** \brief Class parameters
  *
diff --git a/src/sensors/usb_cam/usb_cam.h b/src/sensors/usb_cam/usb_cam.h
index de3a47182128356dfc597b59e895cff4443f20db..48935ca67fbafe00393754ba1c375bcd005f0153 100644
--- a/src/sensors/usb_cam/usb_cam.h
+++ b/src/sensors/usb_cam/usb_cam.h
@@ -7,7 +7,7 @@ namespace vision_utils {
 
 // Create all pointers
 VU_PTR_TYPEDEFS(SensorCamera);
-VU_PTR_TYPEDEFS(IntrinsicsCamera);
+VU_STRUCT_PTR_TYPEDEFS(IntrinsicsCamera);
 
 /** \brief class parameters
  *
diff --git a/src/vision_utils.h b/src/vision_utils.h
index d24dfff6cf94cd183945b70ac3aabd1d097536e3..2d1fcdcde800f45b892fc570deac1481fbe69665 100644
--- a/src/vision_utils.h
+++ b/src/vision_utils.h
@@ -143,7 +143,7 @@ namespace vision_utils {
  *
  * Derive from this class to create classes of parameters.
  */
-class ParamsBase {
+struct ParamsBase {
 public:
 	ParamsBase(void) {
 	}
@@ -185,7 +185,7 @@ inline double VUBase::getTime(void)
 };
 
 // Create all pointers
-VU_PTR_TYPEDEFS(ParamsBase);
+VU_STRUCT_PTR_TYPEDEFS(ParamsBase);
 VU_PTR_TYPEDEFS(VUBase);
 
 /////////////////////////////////////////////////////////////////////////