[sane-devel] sane.h misses extern "C"

Mattias Ellert mattias.ellert@tsl.uu.se
Mon, 12 Jul 2004 20:17:27 +0200


This is a cryptographically signed message in MIME format.

--------------ms040602050803040803090604
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Henning Meier-Geinitz wrote:
> Hi,
> 
>>Is there a good reason why the installed sane.h misses the usual
>>header lines needed for compilation with C++?
> 
> Well, it's a C and not a C++ header and these #ifdefs are ugly :-)

If you put them in the header file you only need them once. Since they 
are not in the header files you have to do

extern "C" {
#include <sane/sane.h>
}

in every c++ file. I think this is more "ugly". Having the extern 
declaration in one single place (i.e. in the header file) makes so much 
more sense than having to put in in every single file where you include it.

You don't have to do this kind of hack for normal system header files. 
Almost all other header files have the extern "C" declaration (or the 
equivalent __BEGIN_DECLS __END_DECLS pair).

> Isn't it a better solution to use the extern "C" when including the
> file in the C++ .C code if you really want to use sane.h in C++? Or do
> we get trouble this way because it includes the structs?

I think having them in the header file is "the better solution".

>>May I just commit them to CVS?

I would say YES.

> Please wait some time before doing that. Maybe someone else can tell
> us real reasons not to use the extern "C" stuff.
> 
> Bye,
>   Henning

	Mattias
-- 
________________________________________________________________________

mattias.ellert@tsl.uu.se                           tel: +46 18 471 32 58
http://www.tsl.uu.se/~ellert/                      fax: +46 18 471 35 13
________________________________________________________________________

--------------ms040602050803040803090604
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGbDCC
AzIwggKboAMCAQICAgJ2MA0GCSqGSIb3DQEBBAUAME8xDTALBgNVBAoTBEdyaWQxEjAQBgNV
BAoTCU5vcmR1R3JpZDEqMCgGA1UEAxMhTm9yZHVHcmlkIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MB4XDTA0MDUwNDE0MjY0MVoXDTA1MDUwNDE0MjY0MVowUDENMAsGA1UEChMER3JpZDES
MBAGA1UEChMJTm9yZHVHcmlkMRIwEAYDVQQLEwl0c2wudXUuc2UxFzAVBgNVBAMTDk1hdHRp
YXMgRWxsZXJ0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV8f0oE9EY8Zc7W18Puyjc
ZAZUPXqwDqMJigz+FKIy2Tqy3Xcv8hAXk/VM+wU+RZMpfwwRihb0TFYAvqsuHn6rV6Z4xUhn
B5uUjlNp4vBomtPcXOwVBSpflFyMVdkUCTQls+rIoHo/jO07W1NZMRXxBTWoSC/YXfbV9MsP
+6MsFwIDAQABo4IBGjCCARYwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBaAwCwYDVR0P
BAQDAgXgMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
BgNVHQ4EFgQUHC2rjql+Xupjzclc4OC8+kH0iQUwdwYDVR0jBHAwboAUGAXA/AvRtzr0ZZIJ
+1mhX8eIxPChU6RRME8xDTALBgNVBAoTBEdyaWQxEjAQBgNVBAoTCU5vcmR1R3JpZDEqMCgG
A1UEAxMhTm9yZHVHcmlkIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMCMGA1UdEQQcMBqB
GG1hdHRpYXMuZWxsZXJ0QHRzbC51dS5zZTANBgkqhkiG9w0BAQQFAAOBgQBJVHRvfXvI5bjp
2wX92F0MONzIxczNls3F1HBg/GSQ5zq89mGidKVNbbv61r0TztpWOew1r2DfuexFsdLG1mgH
RPtLzWaYnEpAPcJx4DECHqm2cmp+NOP2eWv8hI3uL/279Lxm0B6wIU7V5v/I83kUVZ/JJrNs
5wvrsTRYaKyuVDCCAzIwggKboAMCAQICAgJ2MA0GCSqGSIb3DQEBBAUAME8xDTALBgNVBAoT
BEdyaWQxEjAQBgNVBAoTCU5vcmR1R3JpZDEqMCgGA1UEAxMhTm9yZHVHcmlkIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5MB4XDTA0MDUwNDE0MjY0MVoXDTA1MDUwNDE0MjY0MVowUDENMAsG
A1UEChMER3JpZDESMBAGA1UEChMJTm9yZHVHcmlkMRIwEAYDVQQLEwl0c2wudXUuc2UxFzAV
BgNVBAMTDk1hdHRpYXMgRWxsZXJ0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV8f0o
E9EY8Zc7W18PuyjcZAZUPXqwDqMJigz+FKIy2Tqy3Xcv8hAXk/VM+wU+RZMpfwwRihb0TFYA
vqsuHn6rV6Z4xUhnB5uUjlNp4vBomtPcXOwVBSpflFyMVdkUCTQls+rIoHo/jO07W1NZMRXx
BTWoSC/YXfbV9MsP+6MsFwIDAQABo4IBGjCCARYwCQYDVR0TBAIwADARBglghkgBhvhCAQEE
BAMCBaAwCwYDVR0PBAQDAgXgMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUHC2rjql+Xupjzclc4OC8+kH0iQUwdwYDVR0jBHAwboAU
GAXA/AvRtzr0ZZIJ+1mhX8eIxPChU6RRME8xDTALBgNVBAoTBEdyaWQxEjAQBgNVBAoTCU5v
cmR1R3JpZDEqMCgGA1UEAxMhTm9yZHVHcmlkIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEA
MCMGA1UdEQQcMBqBGG1hdHRpYXMuZWxsZXJ0QHRzbC51dS5zZTANBgkqhkiG9w0BAQQFAAOB
gQBJVHRvfXvI5bjp2wX92F0MONzIxczNls3F1HBg/GSQ5zq89mGidKVNbbv61r0TztpWOew1
r2DfuexFsdLG1mgHRPtLzWaYnEpAPcJx4DECHqm2cmp+NOP2eWv8hI3uL/279Lxm0B6wIU7V
5v/I83kUVZ/JJrNs5wvrsTRYaKyuVDGCAn4wggJ6AgEBMFUwTzENMAsGA1UEChMER3JpZDES
MBAGA1UEChMJTm9yZHVHcmlkMSowKAYDVQQDEyFOb3JkdUdyaWQgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkCAgJ2MAkGBSsOAwIaBQCgggF/MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEw
HAYJKoZIhvcNAQkFMQ8XDTA0MDcxMjE4MTcyN1owIwYJKoZIhvcNAQkEMRYEFE8w9/xFU+Qa
w71Npkfy60ibRl3PMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwIC
AgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMGQGCSsGAQQBgjcQ
BDFXMFUwTzENMAsGA1UEChMER3JpZDESMBAGA1UEChMJTm9yZHVHcmlkMSowKAYDVQQDEyFO
b3JkdUdyaWQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkCAgJ2MGYGCyqGSIb3DQEJEAILMVeg
VTBPMQ0wCwYDVQQKEwRHcmlkMRIwEAYDVQQKEwlOb3JkdUdyaWQxKjAoBgNVBAMTIU5vcmR1
R3JpZCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQICAnYwDQYJKoZIhvcNAQEBBQAEgYCEBgrd
wV1iYUg7laLjEYjeUNwKgMfg/Pr4+Y81d5nreFW6DnYF6FtDLcv3aICUmDdz5yTwyIkoaLGx
NhqYETSZo6NeCBD7oRGQnRruqa5+pgG2OGZSkgT3N4ODrZSEXXdHbXWV1uqmcBnSbyITxwt9
BuhgPILjf+rh3nSs2MIVtwAAAAAAAA==
--------------ms040602050803040803090604--