Рассмотрите WPF, если дизайн интерфейса важен для Вас, потому что WPF может обеспечить лучший опыт UI. Но Windows Forms имеют на его стороне годы эволюции, таким образом, это, как доказывают, работает, и можно найти многих сведущих программистов для той платформы.
Также мобильность может быть проблемой, WPF только работает с Windows XP SP2 и.
кроме того, WPF имеет крутую кривую обучения, означая, что не легко поставить качественный продукт, не имея определенного опыта WPF.
Я видел, как это делается, - это обернуть typedef в структуру шаблона:
template<typename KeyType, typename MappedType>
struct myMap
{
#ifdef _TR1
typedef std::tr1::unordered_map<KeyType, MappedType> type;
#else
typedef std::map<KeyType, MappedType> type;
#endif
};
Затем в своем коде вы вызываете его так:
myMap<key, value>::type myMapInstance;
Это может быть немного более подробный, чем вы хотите, но я считаю, что он отвечает потребностям с учетом текущего состояния C ++.
Вы должны использовать полные типы для typedef.
Вместо этого используйте макрос #define.