मेरा परिदृश्य निम्नलिखित है (यह क्लैग में काम किया है लेकिन जीसीसी में नहीं)
liba.hpp:
inline int MY_GLOBAL = 0;
libother.cpp: (dll)
#include "myliba.hpp"
void myFunc() {
//
MYGLOBAL = 28;
}
someexe.cpp:
RunAppThatUsesBothLibAandLibOther();
समस्या यह है कि इनलाइन वैरिएबल 0 को उन जगहों पर दिखा रहा था जहां मुझे 28 की उम्मीद थी क्योंकि यह रन-टाइम में संशोधित किया गया था। MSVC इससे सहमत नहीं है, लेकिन क्लैग वह बात करता है जिसकी मुझे उम्मीद थी।
सवाल यह है कि क्या मेरे परिदृश्य में इनलाइन चरों को रन-टाइम में संशोधित किया जा सकता है? (मैंने वैरिएबल को डी-इनलाइन करके समस्या हल की है।)