私は、関数がすべて単純ないくつかのパラメーター (std::string など) を渡されるが、置換できないことを達成しようとしています。
次のような 2 つの関数を想像してください。
void showFullName(std::string firstname, std::string lastname) {
cout << "Hello " << firstname << " " << lastname << endl;
}
void someOtherFunction() {
std::string a("John");
std::string b("Doe");
showFullName(a, b); // (1) OK
showFullName(b, a); // (2) I am trying to prevent this
}
ご覧のとおり、関数パラメーターの順序を混在させることができます。これを防止しようとしています。
私の最初の考えは、ある種のtypedefでした。
typedef std::string Firstname;
typedef std::string Lastname;
void showFullName(Firstname firstname, Lastname lastname)
//...
しかし、(せいぜい GNU の) c++ コンパイラは、私が望むように動作しません ;)
誰かがこれに対する良い解決策を持っていますか?