replaced lambda with class plus functor
							parent
							
								
									7aab3796b0
								
							
						
					
					
						commit
						e3a28767ed
					
				| 
						 | 
					@ -165,13 +165,15 @@ inline Key Z(std::uint64_t j) { return Symbol('z', j); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Generates symbol shorthands with alternative names different than the
 | 
					/** Generates symbol shorthands with alternative names different than the
 | 
				
			||||||
 * one-letter predefined ones. */
 | 
					 * one-letter predefined ones. */
 | 
				
			||||||
inline std::function<Key(std::uint64_t)> alternativeName(const char c) {
 | 
					class SymbolGenerator {
 | 
				
			||||||
	return [c](std::uint64_t j) { return gtsam::Symbol(c, j); };
 | 
					  const char c_;
 | 
				
			||||||
}
 | 
					public:
 | 
				
			||||||
 | 
					  SymbolGenerator(const char c) : c_(c) {}
 | 
				
			||||||
 | 
					  Symbol operator()(const std::uint64_t j) const { return Symbol(c_, j); }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// traits
 | 
					/// traits
 | 
				
			||||||
template<> struct traits<Symbol> : public Testable<Symbol> {};
 | 
					template<> struct traits<Symbol> : public Testable<Symbol> {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // \ namespace gtsam
 | 
					} // \ namespace gtsam
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,14 +41,14 @@ TEST(Key, KeySymbolConversion) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ************************************************************************* */
 | 
					/* ************************************************************************* */
 | 
				
			||||||
TEST(Key, SymbolAlternativeNames) {
 | 
					TEST(Key, SymbolGenerator) {
 | 
				
			||||||
  const auto x1 = gtsam::symbol_shorthand::X(1);
 | 
					  const auto x1 = gtsam::symbol_shorthand::X(1);
 | 
				
			||||||
  const auto v1 = gtsam::symbol_shorthand::V(1);
 | 
					  const auto v1 = gtsam::symbol_shorthand::V(1);
 | 
				
			||||||
  const auto a1 = gtsam::symbol_shorthand::A(1);
 | 
					  const auto a1 = gtsam::symbol_shorthand::A(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const auto Z = gtsam::symbol_shorthand::alternativeName('x');
 | 
					  const auto Z = gtsam::symbol_shorthand::SymbolGenerator('x');
 | 
				
			||||||
  const auto DZ = gtsam::symbol_shorthand::alternativeName('v');
 | 
					  const auto DZ = gtsam::symbol_shorthand::SymbolGenerator('v');
 | 
				
			||||||
  const auto DDZ = gtsam::symbol_shorthand::alternativeName('a');
 | 
					  const auto DDZ = gtsam::symbol_shorthand::SymbolGenerator('a');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const auto z1 = Z(1);
 | 
					  const auto z1 = Z(1);
 | 
				
			||||||
  const auto dz1 = DZ(1);
 | 
					  const auto dz1 = DZ(1);
 | 
				
			||||||
| 
						 | 
					@ -125,4 +125,3 @@ int main() {
 | 
				
			||||||
  return TestRegistry::runAllTests(tr);
 | 
					  return TestRegistry::runAllTests(tr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/* ************************************************************************* */
 | 
					/* ************************************************************************* */
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue