我有幾個我想棄用的TypeDefs。我這樣做是爲了保持與已經存在的代碼的向後兼容性。有沒有一個優雅的(或者可能不是那麼優雅)解決方案?我希望它能獨立於平臺,但如果只有Visual Studio解決方案,那也是可以的。不贊成Typedef
7
A
回答
11
在MSVC++,你可以棄用typedef
這樣的:
typedef __declspec(deprecated) int myint;
的MSVC++編譯器將生成警告myint
已過時!
如果你想編譯器生成一個特定的消息編譯過時的typedef時,那麼這樣做:
typedef __declspec(deprecated("myint is deprecated, so most likely in the next version this myint will be missing")) int myint;
+0
做什麼?我想你錯過了最後一部分:)) – lurscher 2011-02-14 18:39:34
+1
您可能需要關閉最後一個括號。 OT:http://xkcd.com/859/ – KitsuneYMG 2011-02-14 18:41:11
4
如果一次性易典都允許,你可以只移動的typedef爲deprecated
命名空間需要在使用typedef的地方使用using namespace deprecated
。
如果這不是一個選項,它可能有可能炮製的是,在實例化時,會產生一個警告的模板,但我不知道如何產生副手這樣的警告:
template <class T>
class TypedefHolder;
template <>
class TypedefHolder<int>
{
typedef int WhateverType;
// Something that induces a compile warning.
};
所以不是:
typedef int WhateverType;
就變成:
typedef TypedefHolder<int>::WhateverType WhateverType;
相關問題
- 1. 不贊成
- 2. 是datastore mapreduce不贊成
- 3. 不贊成的hibernate getSession().connection()
- 4. Flex 4.5中不贊成mx.containers.HDividedBox?
- 5. 不能贊成測試
- 6. System.IO.Stream贊成HttpPostedFileBase
- 7. 贊成&.NET 3.5中
- 8. 「代碼不贊成」使用Java
- 9. FusionTables不贊成使用數字表ID
- 10. 「的setText:不贊成使用」警告
- 11. kSecAttrAccessible一直不贊成使用ios 9
- 12. 不贊成使用計數軌4
- 13. clEnqueTask在openCL 2.0中不贊成使用
- 14. 我不贊成使用surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
- 15. IOS6不贊成Monotouch的方法
- 16. 不贊成readLine()要更改什麼?
- 17. XMPP語法不贊成在swift 3.0
- 18. Api annotaion的描述不贊成
- 19. 的Ruby的Watir不贊成的方法
- 20. Auth0-lock反應原生不贊成
- 21. 處理不贊成的方法
- 22. 不贊成使用的方法:getPreferenceScreen
- 23. 使用不贊成的方法
- 24. Scala:爲什麼刪除不贊成filterNot?
- 25. IIS 8.5贏8.1贊成localHost不工作
- 26. C#在贊成可讀性
- 27. 獲取玩家的贊成
- 28. 模板基類typedef成員不可見
- 29. 贊/不像按鈕
- 30. Isabelle - 代碼生成 - typedef
沒有便攜式解決方案。 @納瓦茲給了微軟的擴展。相當於gcc的類型是`typedef int myint __attribute __((不建議使用));`。 – aschepler 2011-02-14 18:40:29