Declare single-argument (non-converting) constructors "explicit"

In order to avoid unintended implicit conversions.
This commit is contained in:
practicalswift
2017-08-01 12:22:41 +02:00
parent 22e301a3d5
commit 64fb0ac016
68 changed files with 105 additions and 105 deletions

View File

@ -114,7 +114,7 @@ struct PrecomputedTransactionData
{
uint256 hashPrevouts, hashSequence, hashOutputs;
PrecomputedTransactionData(const CTransaction& tx);
explicit PrecomputedTransactionData(const CTransaction& tx);
};
enum SigVersion

View File

@ -21,7 +21,7 @@ protected:
const CKeyStore* keystore;
public:
BaseSignatureCreator(const CKeyStore* keystoreIn) : keystore(keystoreIn) {}
explicit BaseSignatureCreator(const CKeyStore* keystoreIn) : keystore(keystoreIn) {}
const CKeyStore& KeyStore() const { return *keystore; };
virtual ~BaseSignatureCreator() {}
virtual const BaseSignatureChecker& Checker() const =0;
@ -54,7 +54,7 @@ public:
/** A signature creator that just produces 72-byte empty signatures. */
class DummySignatureCreator : public BaseSignatureCreator {
public:
DummySignatureCreator(const CKeyStore* keystoreIn) : BaseSignatureCreator(keystoreIn) {}
explicit DummySignatureCreator(const CKeyStore* keystoreIn) : BaseSignatureCreator(keystoreIn) {}
const BaseSignatureChecker& Checker() const override;
bool CreateSig(std::vector<unsigned char>& vchSig, const CKeyID& keyid, const CScript& scriptCode, SigVersion sigversion) const override;
};

View File

@ -253,7 +253,7 @@ class CScriptVisitor : public boost::static_visitor<bool>
private:
CScript *script;
public:
CScriptVisitor(CScript *scriptin) { script = scriptin; }
explicit CScriptVisitor(CScript *scriptin) { script = scriptin; }
bool operator()(const CNoDestination &dest) const {
script->clear();