2013-07-19 34 views
0

我們有一些代碼編寫TR1,例如: -我可以在VS2010中使用C++ TR1嗎?

#include <tr1/functional> 
... 
typedef std::tr1::function<void(int)> MyFunction; 
.. 

其工作原理是用gcc編譯罰款,但與VS2010失敗。

我們的代碼有compatibility issue with C++11,所以恐怕我不能簡單地切換到C++ 11。我不想在我們的代碼中引入增強功能。

是否有任何包裝或什麼我應該下載VS2010使其支持TR1?

回答

3

VS 2010支持TR1開箱即用。當您包含文件名時,您不需要tr1/

#include <functional> 

typedef std::tr1::function<void(int)> MyFunction; 

注意TR1不會爲標題指定文件名,所以只要有符合TR1的推移,任何一個是關於另一個相同。

3

可以在VS 2010中直接使用<functional>所以它會是

#include <functional> 
... 
typedef std::function<void(int)> MyFunction; 
.. 

VS 2010移動什麼是以前在std::tr1到平時std命名空間,但是VS 2008仍然使用std::tr1。也就是說,如果你需要它,你仍然可以明確地使用tr1命名空間。

#include <functional> 
... 
typedef std::tr1::function<void(int)> MyFunction; 
.. 

也是有效的(注意頭文件包含沒有tr1/)。

相關鏈接:

What are differences between std, tr1 and boost (as namespaces and/or libraries)?

Why does VS2010 maintain the std::tr1 namespace?

+0

感謝。可悲的是,我不能接受兩個答案。 – Deqing

相關問題