Rename translation units containing main() to main.cpp
Also unify style of argv declaration
Change-Id: I1dcb8689b1cd38e042a0b1f05be7f98bd2d487ed
diff --git a/README-dev.md b/README-dev.md
index 3f6fef3..d3b2cec 100644
--- a/README-dev.md
+++ b/README-dev.md
@@ -59,25 +59,29 @@
### Namespace
-Types in each tool SHOULD be declared in a sub-namespace under `namespace ndn`.
+Types in each tool SHOULD be declared in a sub-namespace inside `namespace ndn`.
For example, a tool in `tools/foo` directory has namespace `ndn::foo`.
This allows the tool to reference ndn-cxx types with unqualified name lookup.
This also prevents name conflicts between ndn-cxx and tools.
-Types in `core/` SHOULD be declared directly under `namespace ndn`,
+Types in `core/` SHOULD be declared directly inside `namespace ndn`,
or in a sub-namespace if desired.
-`using namespace` SHOULD NOT be used except within block scope.
+`using namespace` SHOULD NOT be used except in block scope.
### main Function
-The main function of a program SHOULD be declared within its sub-namespace.
-This allows it to reference types in ndn-cxx and the tool with unqualified name lookup.
+The `main` function of a program SHOULD be declared as a static function in
+the namespace of the corresponding tool. This allows referencing types in
+ndn-cxx and the tool via unqualified name lookup.
-Then, another main function in global namespace needs to be defined
-to call the main function in sub-namespace.
+Then, another (non-static) `main` function must be defined in the global
+namespace, and from there call the `main` function in the tool namespace.
-For example:
+These two functions SHOULD appear in a file named `main.cpp` in the tool's
+subdirectory.
+
+Example:
namespace ndn {
namespace foo {
@@ -92,8 +96,8 @@
run();
};
- int
- main(int argc, char** argv)
+ static int
+ main(int argc, char* argv[])
{
Face face;
Bar program(face);
@@ -105,7 +109,7 @@
} // namespace ndn
int
- main(int argc, char** argv)
+ main(int argc, char* argv[])
{
return ndn::foo::main(argc, argv);
}