2

重複の可能性:
Cプリプロセッサマクロに提供された引数の大文字と小文字を変更

私は次のCPPコードを持っています

#include <iostream>
using namespace std;

#define PROPERTY(name,type) type get ## name () { return name; } void set ## name ( type value ) { this-> name ; }

class Demo {

  string name;

public:
  PROPERTY(name,string)

  Demo() {
      name = "no name";
  }
};

int main(){
  Demo demo;
  cout << demo.getname();
  return 0;
}

上記のコードによると、マクロは「getname」という名前のメソッドを生成します。これを「getName」にします。

マクロでトークンの大文字と小文字を変更する方法は?

4

1 に答える 1

1

「名前」を大文字にする、つまり

string Name;

それはgetName () とsetName (string)を生成します

おそらくあなたが探しているものではありませんが、同じ効果があります。トークンを大文字にするプリプロセッサのトリックはないと思います。

もう 1 つの代替スタイルは、get_name() と set_name(string) を使用することです。

于 2012-05-31T20:09:03.483 に答える