ほら、名前空間と関数を の前に配置しmain
、これは正常にコンパイルされました。
#include <iostream>
#include <exception>
#include <string>
using namespace std;
//==================================================
namespace Bushman{
void to_lower(char* s)
// Replace all chars to lower case.
{
const int delta = 'a' - 'A';
while(*s){
if(*s >= 'a' && *s <= 'z') *s -= delta;
++s;
}
}
}
//==================================================
int main()
// entry point
try{
namespace B = Bushman; // namespace alias
void B::to_lower(char* s);
char* str = "HELLO, WORLD!";
B::to_lower(str);
printf("%s\n",str);
}
catch(exception& e){
cerr << e.what() << endl;
return 1;
}
catch(...){
cerr << "Unknown exception." << endl;
return 2;
}
しかし、名前空間と関数を の後に配置すると、main
これをコンパイルできません。
#include <iostream>
#include <exception>
#include <string>
using namespace std;
//==================================================
int main()
// entry point
try{
namespace B = Bushman; // namespace alias
void B::to_lower(char* s);
char* str = "HELLO, WORLD!";
B::to_lower(str);
printf("%s\n",str);
}
catch(exception& e){
cerr << e.what() << endl;
return 1;
}
catch(...){
cerr << "Unknown exception." << endl;
return 2;
}
//==================================================
namespace Bushman{
void to_lower(char* s)
// Replace all chars to lower case.
{
const int delta = 'a' - 'A';
while(*s){
if(*s >= 'a' && *s <= 'z') *s -= delta;
++s;
}
}
}
2番目のケースで名前空間と関数の宣言を指定するのはどのように正しいですか?