aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/libsample/noimplicitconversion.h
blob: a0b91380b21544ca53fc384e94acc4aab45f4912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#ifndef NOIMPLICITCONVERSION_H
#define NOIMPLICITCONVERSION_H

#include "libsamplemacros.h"

// This class must not have implicit conversions AND
// no conversion operators should be defined in its own module.
class NoImplicitConversion
{
public:
    explicit NoImplicitConversion(int objId) : m_objId(objId) {}
    inline int objId() const { return m_objId; }
    inline static int receivesNoImplicitConversionByValue(NoImplicitConversion arg)
    { return arg.m_objId; }
    inline static int receivesNoImplicitConversionByPointer(NoImplicitConversion *arg)
    { return arg->m_objId; }
    inline static int receivesNoImplicitConversionByReference(NoImplicitConversion &arg)
    { return arg.m_objId; }
private:
    int m_objId;
};

#endif // NOIMPLICITCONVERSION_H