Actualmente estoy migrando de Visual Studio 2008 a 2010. Mi software hace un uso intensivo de Boost y sus funciones TR1. Ahora recibo muchos errores de compilación, porque VC10 tiene su propia implementación de TR1.TR1 de Boost o VC10 - ¿Cuál es mejor?
Sé que puedo deshabilitar la implementación TR1 de Microsoft con el interruptor _HAS_CPP0X
(vea here), pero no estoy seguro de si esto también desactiva otras características que podrían ser interesantes en el futuro.
Entonces, me pregunto cuál es la mejor implementación de TR1: la de Boost o la de Microsoft? ¿Hay alguna diferencia en absoluto? ¿Deshabilitar la implementación de Microsoft tiene alguna desventaja?
No es que esta es la respuesta que está buscando ... Si deshabilita Microsoft tr1, no puede compilar sin impulso. Si usa boost, puede estar seguro de que tendrá una ruta de actualización constante, y su código se compilará fuera de MSVC. Eso, y boost tiene muchas más características que solo las de TR1 :) –
¿Cuál es el error exacto, las definiciones duplicadas? – MSalters
Sí, el error exacto es definiciones duplicadas. También tiene algo que ver con ADL.Si califico cada aparición de bind o _1 (std :: bind y std :: tr1 :: placeholders :: _ 1) el código pronto se volverá muy desagradable :) –