how can i get error from __attribute__((weak))?

Pages: 12
i can't test, now,
1
2
3
4
5
6
7
#if defined __GNUC__
    #define EVENT [[gnu::weak]]
#elif defined __clang__
    #define EVENT [[llvm::weak]]
#elif defined  _MSC_VER
    #define EVENT  __attribute__ ((weak))
#endif 

because, on VS, i get a problem with pointers:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
template <typename CBase>
class test
{
	CBase* atPointer = nullptr;
	

public:

	test(CBase *clsPointer) : atPointer(clsPointer)
	{
		//if (IS_EVENT_DEFINED(&CBase::MouseClick))
			atPointer->MouseClick();


		//if (IS_EVENT_DEFINED(&CBase::Move))
			atPointer->Move();

	}
	void call()
	{
		//if (IS_EVENT_DEFINED(&CBase::MouseClick))
			atPointer->MouseClick();

		//if (IS_EVENT_DEFINED(&CBase::Move))
			atPointer->Move();

	}
};

class InstanceName : public test<InstanceName>
{
public:
	InstanceName() : test(this) { ; }
	~InstanceName() { ; }
public:
	 void MouseClick();
	 void Move();
};

void InstanceName::MouseClick()
{
std::cout << "Mouse click\n";
}

void InstanceName::Move()
{
	std::cout << "Move\n";
}

why i don't get the pointer correctly?
(the functions 'MouseClick()' aren't called)
Topic archived. No new replies allowed.
Pages: 12