From: Gehua Y. <yan...@gm...> - 2012-04-17 14:21:38
|
This is fine. Thanks a lot for making the fix! Gehua. On Tue, Apr 17, 2012 at 3:35 AM, Antonio Garrido Carrillo <A.G...@de...> wrote: > Hi, > > You're right, I am using linux and everything worked fine. I should have > taken a look at the results in Cdash... > > Your solution is fine but perhapsit's easier to move "is_required" to > vul_arg_base, and avoid to define a function. In this case, the definition > can be inserted in vul_arg.cxx. > > I have already changed the files according to this idea. Are you ok with > this solution? > > Regards, > Antonio > > > El 16/04/12 23:46, Gehua Yang escribió: > >> Hi Antonio, >> >> I am having a small trouble compiling with the new vul_arg.h. Visual >> Studio raised a warning: >> >> Warning 75 warning C4661: 'vul_arg<T>::required_option_type >> vul_arg<T>::is_required' : no suitable definition provided for >> explicit template instantiation request >> c:\vxl\src\core\vul\vul_arg.h 198 >> >> and eventually a linking error: >> >> Error 495 error LNK2001: unresolved external symbol "public: >> static struct vul_arg<int>::required_option_type >> vul_arg<int>::is_required" >> (?is_required@?$vul_arg@H@@2Urequired_option_type@1@A) >> C:\vxl\bin-vc10-x64\core\vul\tests\test_arg.obj >> >> >> A fix is to add this line to initialize the static member variable >> outside of class scope: >> >> template<class T> >> typename vul_arg<T>::required_option_type vul_arg<T>::is_required; // >> init >> >> >> However, I do not like this fix as it may potentially result in >> duplicate symbol error at linking stage if two different source files >> use vul_arg with the same type. I would propose to use a slightly >> different version: >> static required_option_type is_required() { return required_option_type(); >> } >> >> >> Let me know whether you are okay with this solution. >> >> >> Best Regards, >> Gehua Yang >> >> >> >> >> >> >> >> Regards, >> Gehua Yang >> >> >> >> >> >> On Fri, Mar 30, 2012 at 10:52 AM, Antonio Garrido Carrillo >> <A.G...@de...> wrote: >>> >>> >>> Ian, >>> >>> I agree... not annoying enough, so, perhaps I am the one. Give me some >>> days and I will >>> commit some code to include required arguments... >>> >>> Thanks >>> Antonio. >>> >>> >>> -- > > |