Ранее сегодня (фактически вчера из-за моего часового пояса) я пытался провести собеседование по программированию с помощью Visual Studio 2012 для С++ на странице интервью (которая использует g++).
Чтобы быть кратким, я столкнулся с несколькими ошибками компиляции 1 когда я использовал
#include <cstring>
который был предоставлен скелетным кодом в одном из вопросов, и после обращения к
#include <string>
все ошибки компиляции магически исчезли.
Однако, после отправки на "Интервью-стрит", мне пришлось добавить c
назад; в противном случае я получил ошибки компиляции.
Это был первый раз, когда я был укушен нестандартизацией....
Мой вопрос: что внутри <string>
и <cstring>
взяло меня (драгоценное) более получаса?
1 Для всех, кто любопытен:
Одна ошибка Visual Studio 2012, если using <cstring>
:
ошибка C2338: стандарт С++ не предоставляет хэш для этого типа.
в
c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef
возможно для string
в качестве ключа в unordered_map
Одна ошибка g++, если using <string>
:
'strlen' не был объявлен в этой области