10
Bu neden derlenemiyor?Dize ile makroyu kullanma VC üzerinde başarısız oluyor
char programDate[] = "("__DATE__")";
Ama bu (boşluk bakınız) iyi derler:
char programDate[] = "(" __DATE__")";
Şimdi VC2015 biliyorum edebi-operatörlerini destekler. Ama bu derleme aşamasında olmamalı mıydı? __DATE__
, ön işlemci tarafından işlenmiş olmalıdır. Burada neler oluyor?
Unicode/Unicode olmayan yapı ile bazı karma eşleşme sorununu düşündüm - ancak bu yardımcı olmuyor. Bu sadece önceden tanımlanmış makrolarıyla sorunu ancak kullanıcı ile de tanımlanmış değil:
#define MACRO "abc"
char data[] = "("MACRO")";
DÜZENLEME: mevcut ve ön işleme parçası olan C++ 11 kullanıcı tanımlı değişmezleri yana
Error C3688 invalid literal suffix '__DATE__'; literal operator or literal operator template 'operator ""__DATE__' not found
Kullanıcı tanımlı değişmezler hakkındaki yorumunuzda bir şey olabilirsiniz. Genellikle C++ ayrıştırıcıları ** maksimum munch ** 'dır, çünkü her jeton için geçerli bir jeton olana kadar olabildiğince çok karakter atarlar. –
Derleme hatasını yazabilirsiniz. –