Не существует универсального ответа на вопрос, как интерпретируется значение «столбца» в сообщениях об ошибках компиляторов и аналогичных инструментов.Помимо того факта, что он основан на едином принципе, который, похоже, почти все инструменты и редакторы соблюдают, не было установлено ни одного стандарта для одного из различных решений, о которых вы упомянули, насколько я знаю.Насколько я вижу, используя мою систему Ubuntu 14.04, даже ванильный GCC и ванильный Emacs будут не соглашаться в обработке символов табуляции: GCC, кажется, считает табуляцию одним символом, в то время как Emacs интерпретирует табуляцию так, как много символов на самом деле имеет отступэто.
Далее следует мое личное предложение.Я хотел бы получить отзыв об этом.Для тех, кто пишет инструмент, который выводит такие сообщения об ошибках, я предлагаю подсчитывать байты, а не выполнять какую-либо специальную обработку вкладок, Unicode, суррогатных пар или комбинаций символов.Это наиболее полезно, потому что пользователи почти никогда не читают номер столбца.Вместо этого номер столбца почти всегда анализируется пользовательским интерфейсом.Это должно облегчить как инструмент, выводящий сообщение, так и приложение, отображающее сообщение.Конец моего предложения.
Прагматично, я бы вывел все, что более удобно на используемом вами языке программирования.