title: Stange error with preprocessor macro
body: <p>i have changed code style and aslo i hope it will   help
  <a href="http://www.cs.bell-labs.com/cm/cs/pearls/spacemod.cpp" rel="nofollow noreferrer">http://www.cs.bell-labs.com/cm/cs/pearls/spacemod.cpp</a></p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  #define MEASURE(T,  text)
  {        \
     int i;
  cout&lt;&lt;text&lt;&lt;"\t";                       \
  
   cout&lt;&lt;sizeof(T)&lt;&lt;"\t";                     \
   int lastp=0;\
    for ( i=0;i&lt;11;i++){                \
        T *p=new T;                                  \
        int thisp=(int)p;                                   \
         if (lastp!=0)   cout&lt;&lt;" "&lt;&lt;thisp-lastp;           \
         lastp=thisp;                             \
    }                                                                     \
    cout&lt;&lt;"n";\
    }                                                     \
    using namespace std;
  template &lt;class T&gt;
  void measure(char *text)
  {
      cout&lt;&lt;"measure"&lt;&lt;text&lt;&lt;"\t";  
      cout&lt;&lt;sizeof(T)&lt;&lt;"\n";
  }
  int main(){
  
  
  
       return 0;
  }
  </code></pre>
  
  <p>it has only one mistake</p>
  
  <pre><code>1&gt;c:\users\david\documents\visual studio 2010\projects\measure\measure.cpp(5): error C2447: '{' : missing function header (old-style formal list?)
  </code></pre>