diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md
index bcad2a4..a0e4f13 100644
--- a/CppCoreGuidelines.md
+++ b/CppCoreGuidelines.md
@@ -2851,6 +2851,28 @@ Better:
Flag any use of `&&` as a return type, except in `std::move` and `std::forward`.
+### F.46: `int` is the return type for `main()`
+
+##### Reason
+
+It's a language rule, but violated through "language extensions" so often that it is worth mentioning.
+Declaring `main` (the one global `main` of a program) `void` limits portability.
+
+##### Example
+
+ void main() { /* ... */ }; // bad, not C++
+
+ int main()
+ {
+ std::cout << "This is the way to do it\n";
+ }
+
+##### Enforcement
+
+* The compiler should do it
+* If the compiler doesn't do it, let tools flag it
+
+
### F.50: Use a lambda when a function won't do (to capture local variables, or to write a local function)
##### Reason
@@ -2884,27 +2906,6 @@ Functions can't capture local variables or be declared at local scope; if you ne
* Warn on use of a named non-generic lambda (e.g., `auto x = [](int i){ /*...*/; };`) that captures nothing and appears at global scope. Write an ordinary function instead.
-### F.46: `int` is the return type for `main()`
-
-##### Reason
-
-It's a language rule, but violated through "language extensions" so often that it is worth mentioning.
-Declaring `main` (the one global `main` of a program) `void` limits portability.
-
-##### Example
-
- void main() { /* ... */ }; // bad, not C++
-
- int main()
- {
- std::cout << "This is the way to do it\n";
- }
-
-##### Enforcement
-
-* The compiler should do it
-* If the compiler doesn't do it, let tools flag it
-
### F.51: Prefer overloading over default arguments for virtual functions
??? possibly other situations?