Лучший код для составления статического const int = x в VS2008 и GCC

Я столкнулся с проблемой во время записи кода C ++, который необходимо скомпилировать в Visual Studio 2008 и в GCC 4.6 (и должен также составить обратно в GCC 3.4): Static Const Int Члены класса.

Другие вопросы имеют Правила, необходимые для участников Static Const int. В частности, стандартные и GCC требуют, чтобы переменную есть определение в одном и только один объектный файл.

Однако Visual Studio создает ошибку LNK2005 при компиляции кода (в режиме отладки), которые включают в себя определение в файле .cpp.

Некоторые методы, которые я пытаюсь выбрать между собой:

  • инициализируйте его со значением в файле .cpp, а не заголовок.
  • Используйте препроцессор, чтобы удалить определение для MSVC.
  • Замените его с помощью.
  • Замените его макросом.

Последние два варианта не привлекательны, и я, вероятно, не будет использовать ни один. Первый вариант прост - но I вроде , имеющих значение в заголовке.

То, что я ищу в ответах, - это хороший взгляд, лучший метод практики для структурирования кода, чтобы сделать как GCC, так и MSVC одновременно. Я надеюсь на что-то удивительно красивое, что я еще не подумал.

6
задан Community 23 May 2017 в 11:43
поделиться