v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
48
attic/old_tests/pointer_test.cpp
Normal file
48
attic/old_tests/pointer_test.cpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#include "StarCasting.hpp"
|
||||
|
||||
using namespace Star;
|
||||
|
||||
struct ClassA {
|
||||
virtual ~ClassA() {}
|
||||
};
|
||||
|
||||
struct ClassB : ClassA {
|
||||
ClassB(int member) : member(member) {}
|
||||
virtual ~ClassB() {}
|
||||
int member;
|
||||
};
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
ClassA* ptra = new ClassA();
|
||||
ClassA* ptrb = new ClassB(42);
|
||||
|
||||
coutf("%s\n", is<ClassB>(ptra));
|
||||
coutf("%s\n", is<ClassB>(ptrb));
|
||||
coutf("%s\n", convert<ClassB>(ptrb)->member);
|
||||
|
||||
try {
|
||||
// Expected to throw exception
|
||||
coutf("%s\n", convert<ClassB>(ptra)->member);
|
||||
} catch (std::exception const& e) {
|
||||
coutf("Expected exception caught: %s\n", e.what());
|
||||
}
|
||||
|
||||
shared_ptr<ClassA> sharedptra = make_shared<ClassA>();
|
||||
shared_ptr<ClassA> sharedptrb = make_shared<ClassB>(42);
|
||||
|
||||
coutf("%s\n", is<ClassB>(sharedptra));
|
||||
coutf("%s\n", is<ClassB>(sharedptrb));
|
||||
coutf("%s\n", convert<ClassB>(sharedptrb)->member);
|
||||
|
||||
try {
|
||||
// Expected to throw exception
|
||||
coutf("%s\n", convert<ClassB>(sharedptra)->member);
|
||||
} catch (std::exception const& e) {
|
||||
coutf("Expected exception caught: %s\n", e.what());
|
||||
}
|
||||
|
||||
delete ptra;
|
||||
delete ptrb;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue