1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-03 14:56:01 +02:00
Beef/IDE/mintest/src/cpp/test2.cpp

171 lines
2.2 KiB
C++
Raw Normal View History

2019-08-23 11:56:54 -07:00
#include <stdio.h>
#include <list>
#define BF_EXPORT extern "C" __declspec(dllexport)
#define BF_CALLTYPE __stdcall
int gValThing = 123;
template <typename T>
void TestFunc(T func)
{
for (int i = 0; i < 100000000; i++)
{
func();
}
}
template <typename T>
T Zoofgers(T val)
{
return val;
}
class ClassAz
{
virtual void CallAz()
{
printf("ClassA::CallA\n");
}
virtual void CallBz()
{
printf("ClassA::CallB\n");
}
virtual void CallCz(int a)
{
printf("ClassA::CallC\n");
}
};
class ClassBz : public ClassAz
{
virtual void CallBz() override
{
printf("ClassB::CallB\n");
}
virtual void CallCz(int a) override
{
printf("ClassB::CallC\n");
}
};
class ClassCz : public ClassBz
{
virtual void CallCz(int a) override
{
printf("ClassC::CallC\n");
}
void Poopsie(int a)
{
}
static void Poopsie2(int a)
{
}
};
/*int64_t TestLoop(int64_t a, int64_t b)
{
int64_t res = 100;
for (int64_t i = 0; i < a; i++)
{
res += b;
}
return res;
}*/
struct SmallStruct
{
int mA;
int mB;
};
void TestSmallStruct(SmallStruct ss, int s2)
{
}
enum FartTest
{
Fart0,
Fart1
};
//enum FartForward;
extern "C" char str0[] = {'A', 'B', 'C', 'D', 'E', 'F', 0 };
extern "C" char str1[] = {'a', 'b', 'c', 'd', 'e', 'f', 0 };
template <typename T>
void Poofie(int a)
{
printf("1\n");
}
void Fart();
BF_EXPORT void BF_CALLTYPE ExTest2()
{
Poofie<int>(123);
Fart();
wchar_t wc = L'1';
/*asm(
".intel_syntax;"
"mov rax, 123;"
"mov rcx, 3;"
"lea rsi, str0;"
"lea rdi, str1;"
"rep movsb;"
: "=*mr" (str0)
: "r" (str1)
);*/
FartTest fs;
SmallStruct ss;
ss.mA = 1;
ss.mB = 2;
TestSmallStruct(ss, 123);
SmallStruct* ssPtr = &ss;
SmallStruct& ssRef = ss;
SmallStruct*& ssPtrRef = ssPtr ;
//auto result = TestLoop(3, 4);///////
ClassCz* classCz = new ClassCz();
ClassBz* classBz = classCz;
ClassAz* classAz = classCz;
//9
std::list<int> intList;
intList.push_back(22);
intList.push_back(33);
intList.push_back(44);
int i = 209;
auto act = [&]()
{
i++;
};
Zoofgers(1);
Zoofgers(1.2f);
TestFunc(act);
/*auto actPtr = &act;
for (int i = 0; i < 100000000; i++)
(*actPtr)();*/
printf("Result: %d\n", i);
}