We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 14589e5 commit e128b24Copy full SHA for e128b24
tests/gtest_any.cpp
@@ -249,4 +249,27 @@ TEST(Any, Cast)
249
Any a(v);
250
EXPECT_EQ(a.cast<std::vector<int>>(), v);
251
}
252
+
253
+ // Upcasting.
254
+ {
255
+ // Base class
256
+ class Greeter
257
258
+ virtual void print_msg() const {};
259
+ };
260
261
+ // Derived class
262
+ class HelloGreeter : public Greeter
263
264
+ void print_msg() const override{};
265
266
267
+ auto hg = std::make_shared<HelloGreeter>();
268
269
+ Any a(hg);
270
+ EXPECT_NO_THROW(auto res = a.cast<std::shared_ptr<HelloGreeter>>());
271
+ EXPECT_NO_THROW(auto res = a.cast<std::shared_ptr<Greeter>>());
272
+ EXPECT_TRUE(a.castPtr<std::shared_ptr<HelloGreeter>>());
273
+ EXPECT_TRUE(a.castPtr<std::shared_ptr<Greeter>>());
274
+ }
275
0 commit comments