partial_spec.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/* 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * It is known that this code not compiled by following compilers: 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * MSVC 6 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * It is known that this code compiled by following compilers: 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * MSVC 8 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * gcc 4.1.1 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */ 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/* 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * This code represent what STLport waits from a compiler which support 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * the partial template function ordering (!_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER) 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */ 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate <class T1> 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct template_struct {}; 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate <class T1> 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottint func(T1 p1); 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate <class T1> 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottint func(template_struct<T1>); 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottint foo() 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int tmp1 = 0; 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott template_struct<int> tmp2; 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott func(tmp1); 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott func(tmp2); 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott return 0; 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 35