Request Short Link
C++ 98
C++ 11
C++ 14
C++ 17
C++ 20
C++ 23
C++ 2c
for-loops as while-loops
array subscription
Show all implicit casts
Show all template parameters of a CallExpr
Use libc++
Transform std::initializer_list
Show noexcept internals
Show padding information
Show coroutine transformation
Show C++ to C transformation
Show object lifetime
Default
15
18
20
22
26
More
GitHub
Patreon
Issues
About
Policies
Examples
C++ Insights @ YouTube
Settings
Version
Workshop: Safe and Efficient C++ for Embedded Environments
×
Made by
Andreas Fertig
Powered by
Flask
and
CodeMirror
Source:
#include <iostream> #include <tuple> struct MyStruct { MyStruct() = default; MyStruct(const MyStruct&) { std::cout << "Copy constructor called" << std::endl; } MyStruct(MyStruct&&) noexcept { std::cout << "Move constructor called" << std::endl; } ~MyStruct() = default; MyStruct& operator=(const MyStruct&) = default; MyStruct& operator=(MyStruct&&) noexcept = default; }; std::tuple<MyStruct, MyStruct> foo() { return {MyStruct{}, MyStruct{}}; } std::tuple<MyStruct, MyStruct> bar() { return {{}, {}}; } int main() { std::cout << "Foo" << std::endl; auto [a, b] = foo(); std::cout << "Bar" << std::endl; auto [c, d] = bar(); return 0; }
Insight:
Console: