Comments (10)
Beware: the __cdecl should not be defined on classes.
from muparser.
Sorry i totally missed this part of the discussion. C++ exports cannot safely work with an API having STL dependencies. For this reason i do not want them.
from muparser.
This could be disabled by default (only export the C API), with a warning mentionning the compiler and stl runtime compatibility if enabled what do you think?
I think there are plenty libraries out there that use the stl without getting their tracker flooded with bug reports about abi compatibility, as his responsibility fals back to distro maintainers etc. Muparser can also be entirely included in a project's source code so it doesn't apply there either.
Another point is that its not fair to Windows developers wanting to use the c++ api as allowed on Linux.
from muparser.
On Windows there are no package maintainers. It is much more common to drop a dll into the program folder and expect it to work. There are plenty of visual studio versions in productive use. People will expect a DLL to work because it is just a DLL like so many others they used in the past. After all why should one have to recompile a shared library just because the compiler was upgraded? What good is a shared lib that cannot be shared by applications build with different versions of the compiler? Such a library would be combining the disadvantages of a static library with the disadvantages of a dynamic library.
The recommended way to use muparser on windows is as a static library or by including the source code. The overwhelming majority of windows programmers is using the exact same API as their colleges working with Linux. This is open source I'm not preventing anyone from building, using or providing a DLL with STL interface. I just happen to think that this is not a good idea and i don't want to have anything to do with it.
The interface of the muparser.dll has always been a C-interface. The goal was interoperability not having a shared library for the sake of having a shared library. It was aimed at people writing C#, C or Fortran code.
from muparser.
With the advent of vcpkg, I ask you to reconsider.
https://github.com/Microsoft/vcpkg/tree/master/ports/muparser
from muparser.
I don't really see how vcpkg is changing anything but if i get a tested modification that implements this without breaking stuff and without changing the meaning of existing macros i will merge it.
from muparser.
My PR was working, if you want it tested you can enable continuous integration using Travis/Appveyor services for this repository (see #36), the configuration files are already here. I can resubmit #43 without renaming the macros if that's a concern.
from muparser.
Ok, please resubmit without renaming the macros.
from muparser.
Ok @beltoforion see #49
from muparser.
Ok, merged. Thanks
from muparser.
Related Issues (20)
- problems with upgrading to strfun_type6 HOT 1
- Couldn't link to muparser library built without wide-character support. HOT 6
- How to use "sin" cos, and Pi in the muparser HOT 1
- Error compiling muparser with Rtools/MinGW on Windows HOT 4
- OpenMP and batch mode HOT 1
- Is it possible to disable assignment operator? HOT 1
- New Release HOT 2
- any easy way make muparser accept armadillo mat type? HOT 1
- Issue with expression limit HOT 5
- 2.3.3 tarball still identifies as 2.3.2 HOT 2
- _UNICODE is a reserved env variable on Windows HOT 2
- Lack of Visual Studio project compiling with Ev3 HOT 7
- `sprintf` deprecation warning on macOS HOT 6
- constants not doucmented HOT 6
- Precedence is different in code vs docs HOT 2
- Error when compiling in Windows HOT 4
- a_bAllowOpt argument to DefineFun is not honored HOT 1
- Incorrect behavior of Eval(int& stackSize) HOT 2
- Two warnings at muParserTokenReader.cpp
- Postfix operator with numbers HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from muparser.