Why to build your own library, when there is already a C++-based libsnark-alike PLONK-featuring implmenetaion by =nil; Foundation: https://github.com/NilFoundation/crypto3, (in here more precisely: https://github.com/NilFoundation/crypto3-zk)?