partial_spec.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen/* 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * It is known that this code not compiled by following compilers: 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * MSVC 6 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * It is known that this code compiled by following compilers: 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 83f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen * MSVC 8 9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen * gcc 4.1.1 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch */ 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/* 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * This code represent what STLport waits from a compiler which support 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * the partial template function ordering (!_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER) 1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen */ 16201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochtemplate <class T1> 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct template_struct {}; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 2021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsentemplate <class T1> 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochint func(T1 p1); 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochtemplate <class T1> 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochint func(template_struct<T1>); 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochint foo() 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch{ 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int tmp1 = 0; 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch template_struct<int> tmp2; 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch func(tmp1); 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch func(tmp2); 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return 0; 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch