namespace libzerocoin {
//Commitment class
Commitment::Commitment::Commitment(const IntegerGroupParams* p,
const Bignum& value): params(p), contents(value) {
this->randomness = Bignum::randBignum(params->groupOrder);
this->commitmentValue = (params->g.pow_mod(this->contents, params->modulus).mul_mod(
params->h.pow_mod(this->randomness, params->modulus), params->modulus));
}
Po prostu napotkałem tę definicję funkcji na GitHub.Operator rozdzielczości zakresu używany dwukrotnie:
Zakładam, że drugie i trzecie "zobowiązanie" odnoszą się do nazwy klasy i konstruktora, ale nie mogę zrozumieć znaczenia pierwszego. Jestem pewien, że nie odnosi się do przestrzeni nazw, ponieważ ta nazwa jest inna. Widziałem operator rozdzielczości zakresu używane dwukrotnie w przykładach, ale te odnoszą się do zagnieżdżonych przestrzeni nazw.
Nawet klasa B {B(); }; B :: B :: B :: B() {} kompiluje się z gcc i clang, ale MSVC ma problemy. Ciekawy. Może wstrzyknięty typ. –