diff --git a/src/cryptocontextimpl.cpp b/src/cryptocontextimpl.cpp index da040f5..399c9a7 100644 --- a/src/cryptocontextimpl.cpp +++ b/src/cryptocontextimpl.cpp @@ -124,18 +124,7 @@ void wrap_CryptoContextImpl(jlcxx::Module& mod) { lbcrypto::ConstCiphertext) const>(&WrappedT::EvalSub)); wrapped.method("EvalMultKeyGen", &WrappedT::EvalMultKeyGen); - // static_cast is not applicable to static functions, so wrap overloaded static function - // using lambda expressions - wrapped.method("ClearEvalMultKeys", [](){ - return WrappedT::ClearEvalMultKeys(); - }); - wrapped.method("ClearEvalMultKeys", [](const lbcrypto::CryptoContext cc){ - return WrappedT::ClearEvalMultKeys(cc); - }); - wrapped.method("ClearEvalMultKeys", [](const std::string& id){ - return WrappedT::ClearEvalMultKeys(id); - }); - + // EvalMult // ConstCiphertext * ConstCiphertext wrapped.method("EvalMult", @@ -184,34 +173,27 @@ void wrap_CryptoContextImpl(jlcxx::Module& mod) { wrapped.method("EvalDivide", &WrappedT::EvalDivide); wrapped.method("EvalSumKeyGen", &WrappedT::EvalSumKeyGen); - // static_cast is not applicable to static functions, so wrap overloaded static function - // using lambda expressions - wrapped.method("ClearEvalSumKeys", [](){ - return WrappedT::ClearEvalSumKeys(); - }); - wrapped.method("ClearEvalSumKeys", [](const lbcrypto::CryptoContext cc){ - return WrappedT::ClearEvalSumKeys(cc); - }); - wrapped.method("ClearEvalSumKeys", [](const std::string& id){ - return WrappedT::ClearEvalSumKeys(id); - }); wrapped.method("EvalSum", &WrappedT::EvalSum); wrapped.method("EvalBootstrapSetup", &WrappedT::EvalBootstrapSetup); wrapped.method("EvalBootstrapKeyGen", &WrappedT::EvalBootstrapKeyGen); - // static_cast is not applicable to static functions, so wrap overloaded static function - // using lambda expressions - wrapped.method("ClearEvalAutomorphismKeys", [](){ - return WrappedT::ClearEvalAutomorphismKeys(); - }); - wrapped.method("ClearEvalAutomorphismKeys", [](const lbcrypto::CryptoContext cc){ - return WrappedT::ClearEvalAutomorphismKeys(cc); - }); - wrapped.method("ClearEvalAutomorphismKeys", [](const std::string& id){ - return WrappedT::ClearEvalAutomorphismKeys(id); - }); wrapped.method("EvalBootstrap", &WrappedT::EvalBootstrap); }); + + // clear evaluation keys + typedef lbcrypto::CryptoContextImpl WrappedT; + mod.method("ClearEvalMultKeys", static_cast(&WrappedT::ClearEvalMultKeys)); + mod.method("ClearEvalMultKeys", + static_cast)>(&WrappedT::ClearEvalMultKeys)); + mod.method("ClearEvalMultKeys", static_cast(&WrappedT::ClearEvalMultKeys)); + mod.method("ClearEvalSumKeys", static_cast(&WrappedT::ClearEvalSumKeys)); + mod.method("ClearEvalSumKeys", + static_cast)>(&WrappedT::ClearEvalSumKeys)); + mod.method("ClearEvalSumKeys", static_cast(&WrappedT::ClearEvalSumKeys)); + mod.method("ClearEvalAutomorphismKeys", static_cast(&WrappedT::ClearEvalAutomorphismKeys)); + mod.method("ClearEvalAutomorphismKeys", + static_cast)>(&WrappedT::ClearEvalAutomorphismKeys)); + mod.method("ClearEvalAutomorphismKeys", static_cast(&WrappedT::ClearEvalAutomorphismKeys)); } void wrap_GenCryptoContext(jlcxx::Module& mod) {