Несколько недель назад I posted this question о странном сообщении об ошибке. Преступником был неправильный разбор маркера <, проблема была решена с помощью ключевого слова «шаблон» для устранения неоднозначности."шаблонный" disambiguator - C++ 11. Любой шанс для VS2008 компилятора?
Мы обнаружили неожиданный уродливый сюрприз. Шаблоном disambiguator является C++ 11, но нам нужно поддерживать VS2008, и он не поддерживает его. Таким образом, мы в основном перешли от чего-то, что компилируется на windows, но не на linux, на то, что компилируется на linux, но не на windows.
Есть ли у вас какие-либо идеи, как их решить? В частности
- есть волшебный вариант в компиляторе окна, чтобы включить этот C++ 11 конструкта или
- есть альтернативный путь в пределах старого с стандартом ++, чтобы решить эту неоднозначность, которая также кросс-компилятор, или
- , если нам нужно использовать препроцессор, какие константы препроцессора (если таковые имеются), чтобы отличить два компиляторов (GCC является другой один)
'. template' не является конструкцией C++ 11. – Yuushi
'.template' to disambiguate не относится к C++ 11. см. http://www.cplusplus.com/forum/general/194/ и http://womble.decadent.org.uk/c++/template-faq.html раздел 6, – mark
Без кода и сообщения об ошибке это невозможно сказать, в чем проблема. – mark