Skip to content

Instantly share code, notes, and snippets.

@TheZoq2
Created December 30, 2020 13:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TheZoq2/c8760ffbb8d016585e9fa29d993cede4 to your computer and use it in GitHub Desktop.
Save TheZoq2/c8760ffbb8d016585e9fa29d993cede4 to your computer and use it in GitHub Desktop.
#include <iostream>
template<typename T>
struct NoDefault {
NoDefault() = delete;
NoDefault(T const& inner) : inner{inner} {}
operator T() {return inner;}
T inner;
};
struct X {
NoDefault<double> x;
NoDefault<double> y;
NoDefault<double> z;
};
X correct_order() {
double x = 0;
double y = 1;
double z = 2;
return X {
.x = x,
.y = y,
.z = z
};
std::cout << "what the fuck?" << std::endl;
}
int main(int argc, char *argv[]) {
auto x = correct_order();
std::cout << x.x << " " << x.y << " " << x.z << std::endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment