Search Results

Search found 23792 results on 952 pages for 'void pointers'.

Page 430/952 | < Previous Page | 426 427 428 429 430 431 432 433 434 435 436 437  | Next Page >

  • Deleted array value still showing up on foreach loop in AS3 (bug in flash?)

    - by nexus
    It took me many hours to narrow down a problem in some code to this reproducible error, which seems to me like a bug in AVM2. Can anyone shed light on why this is occurring or how to fix it? When the value at index 1 is deleted and a value is subsequently set at index 0, the non-existent (undefined) value at index 1 will now show up in a foreach loop. I have only been able to produce this outcome with index 1 and 0 (not any other n and n-1). Run this code: package { import flash.display.Sprite; public class Main extends Sprite { public function Main():void { var bar : Array = new Array(6); out(bar); //proper behavior trace("bar[1] = 1", bar[1] = 1); out(bar); //proper behavior trace("delete bar[1]", delete bar[1]); out(bar); //proper behavior trace("bar[4] = 4", bar[4] = 4); out(bar); //for each loop will now iterate over the undefined position at index 1 trace("bar[0] = 0", bar[0] = 0); out(bar); trace("bar[3] = 3", bar[3] = 3); out(bar); } private function out(bar:Array):void { trace(bar); for each(var i : * in bar) { trace(i); } } } } It will give this output: ,,,,, bar[1] = 1 1 ,1,,,, 1 delete bar[1] true ,,,,, bar[4] = 4 4 ,,,,4, 4 bar[0] = 0 0 0,,,,4, 0 undefined 4 bar[3] = 3 3 0,,,3,4, 0 undefined 4 3

    Read the article

  • Qt - 2 QMainWindow glued - Size of Layout

    - by user1773603
    I have a main window that I center this way in main.cpp : int main(int argc, char *argv[]) { QApplication app(argc, argv); QMainWindow *qmain = new QMainWindow; Ui_MainWindow ui; ui.setupUi(qmain); QRect r = qmain->geometry(); r.moveCenter(QApplication::desktop()->availableGeometry().center()); qmain->setGeometry(r); qmain->show(); return app.exec(); } In this "qmain" main window, I can create another QMainWindow and I try to make stick (or glue I don't know how to say) the two windows. Actually, I would like the right-top corner of the first one to be located at the left-top of the second one. For this, I use the following Ui_MainWindow's member function : void Ui_MainWindow::generate_IC() { qmenu = new QMainWindow; DiskMenu = new Ui_DiskGalMenu; DiskMenu->setupUi(qmenu); setInitialDiskMenuPosition(qmenu, this); qmenu->show(); } and the setInitialDiskMenuPosition : void Ui_MainWindow::setInitialDiskMenuPosition(QMainWindow *MainWindow, Ui_MainWindow *parent) { QSize size = parent->widget->size(); QDesktopWidget* desktop = QApplication::desktop(); int width = desktop->width(); int height = desktop->height(); int mw = size.width(); int mh = size.height(); int right = (width/2) + (mw/2); int top = (height/2) - (mh/2); MainWindow->move(right, top); } But the problem is that I don't get exactly what I want since the centralwidget size "parent- widget-size()" only returns the size of the widget and not the whole "qmain" parent window. So I have a light shift because the borders of the "qmain" window are not taken in account like it is shown below : If I could have access to the size of the whole parent window... If anyone could help me

    Read the article

  • how do i call methods from another class in android?

    - by Phani Gargey
    I have two classes in question. Both extend Activity. Class A public void displayinfo() { setContentView(R.layout.dynamicinfo); //Add some buttons dynamically here //do some processing // move on to Class B } In Class B: I want to go back to Class A state in UI if BACK button is pressed. Class B //Register a listener for this button Backbutton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Log.i("setOnClickListener", "Pressed Back Button "); Toast.makeText(mycontext, "Pressed Back Button", Toast.LENGTH_SHORT).show(); //HERE I want to go back class's function in UI as well as restoring the sttae for that screen. } how do I do that? I looked around some questions. they did not answer clearly what I am looking for.hence the posting. thanks.I think I was adding my own Back button on the Layout I created in the Class B's UI Screen --not using the regular "Back" button on the key board. May be that was the problem.

    Read the article

  • Why is android:transcriptMode="normal" not working properly?

    - by BCS
    I've been doing a lot of fiddling with an issue I've been having. What happens is each time an item gets added to my listview (adapter) I expect it to auto-scroll if I'm at the last item (which it will do to an extent); HOWEVER, if 3 or more items get added at once, it will not auto-scroll. Here is the XML of that listview: <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:transcriptMode="normal"/> I tried a workaround using a snippet I found here. My code is as follows: public void addChat(final String text, final String username) { this.runOnUiThread(new Runnable() { public void run() { globals.chatAdapter.add(DateFormat.format("hh:mmaa", Calendar.getInstance()).toString(), username, text); globals.chatAdapter.notifyDataSetChanged(); int lastP = getListView().getLastVisiblePosition(); int count = globals.chatAdapter.getCount() - 1; if (lastP == globals.chatAdapter.oldP || lastP == -1) { getListView().setSelection(count); } globals.chatAdapter.oldP = count; } }); } The problem with this is when a bunch of items come in at once, getListView().getLastVisiblePosition() will not update right away causing a setSelection() to never get called, and thus no auto-scroll. Any suggestions?

    Read the article

  • showDialog in Activity not displaying dialog

    - by Mohit Deshpande
    Here is my code: public class TasksList extends ListActivity { ... private static final int COLUMNS_DIALOG = 7; private static final int ORDER_DIALOG = 8; ... /** * @see android.app.Activity#onCreateDialog(int) */ @Override protected Dialog onCreateDialog(int id) { Dialog dialog; final String[] columns; Cursor c = managedQuery(Tasks.CONTENT_URI, null, null, null, null); columns = c.getColumnNames(); final String[] order = { "Ascending", "Descending" }; switch (id) { case COLUMNS_DIALOG: AlertDialog.Builder columnDialog = new AlertDialog.Builder(this); columnDialog.setSingleChoiceItems(columns, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { bundle.putString("column", columns[which]); } }); dialog = columnDialog.create(); case ORDER_DIALOG: AlertDialog.Builder orderDialog = new AlertDialog.Builder(this); orderDialog.setSingleChoiceItems(order, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String orderS; if (order[which].equalsIgnoreCase("Ascending")) orderS = "ASC"; else orderS = "DESC"; bundle.putString("order", orderS); } }); dialog = orderDialog.create(); default: dialog = null; } return dialog; } /** * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem) */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case SORT_MENU: showDialog(COLUMNS_DIALOG); showDialog(ORDER_DIALOG); String orderBy = bundle.getString("column") + bundle.getString("order"); Cursor tasks = managedQuery(Tasks.CONTENT_URI, projection, null, null, orderBy); adapter = new TasksAdapter(this, tasks); getListView().setAdapter(adapter); break; case FILTER_MENU: break; } return false; } The showDialog doesn't display the dialog. I used the Debugger and it does executes these statements, but the dialog doesn't show. }

    Read the article

  • SQL Server column level security

    - by user46372
    I think I need some pointers on security in SQL Server. I'm trying to restrict some of our end users from getting access to certain columns (i.e. SSN) on a table. I thought I could just use column level security to restrict access to the columns. That successfully prevented users from accessing the table directly, but I was surprised that they could still get to those columns through a view that accessed that table. I followed the tips here: http://www.mssqltips.com/sqlservertip/2124/filtering-sql-server-columns-using-column-level-permissions/ Those were very helpful, but when I created a view at the end, the intern was able to access that column by default I've read that views are the best way to accomplish this, but I really don't want to go through and change all of the views and the legacy front-end application. I would rather just restrict it once on the table and if a view tries to access that column it would just fail. Is that possible or am I misunderstanding how security works in SQL Server?

    Read the article

  • C++ - Where do i start?

    - by richzilla
    Hi All, As a bit of a side project while I'm on my summer break from uni, I've decided to have a look at C++, and get the hang of the basics. I'm by no means a programming novice, I've done web development before with PHP and Ruby, and I've done a fair bit of work with compiled languages (Java / C#). However, C++ seems to be a more significant undertaking. Basically I'm wanting pointers to the best resources for learning C++, as well as some idea as to areas I could do with reading up on (That I might not have come across before). Any help would be hugely appreciated. Thanks

    Read the article

  • "Inlining" (kind of) functions at runtime in C

    - by fortran
    Hi, I was thinking about a typical problem that is very JIT-able, but hard to approach with raw C. The scenario is setting up a series of function pointers that are going to be "composed" (as in maths function composition) once at runtime and then called lots and lots of times. Doing it the obvious way involves many virtual calls, that are expensive, and if there are enough nested functions to fill the CPU branch prediction table completely, then the performance with drop considerably. In a language like Lisp, I could probably process the code and substitute the "virtual" call by the actual contents of the functions and then call compile to have an optimized version, but that seems very hacky and error prone to do in C, and using C is a requirement for this problem ;-) So, do you know if there's a standard, portable and safe way to achieve this in C? Cheers

    Read the article

  • image list, listview,picturebox

    - by user548694
    I wanted to show my pics in picturebox. but also wanted to show a preview of pics. When user select a pic, it is shown in picbox but i have problem in resoulution. Here is my code private void openToolStripMenuItem_Click(object sender, EventArgs e) { ofd = new OpenFileDialog(); ofd.Title = "Open an Image File"; ofd.FileName = ""; ofd.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp"; if (ofd.ShowDialog() == DialogResult.OK) { DirectoryInfo dir = new DirectoryInfo(@"c:\pic"); foreach (FileInfo file in dir.GetFiles()) { this.imageList1.Images.Add(Image.FromFile(file.FullName)); } this.listView1.View = View.LargeIcon; this.imageList1.ImageSize = new Size(40, 40); this.listView1.LargeImageList = this.imageList1; for (int j=0; j < this.imageList1.Images.Count; j++) { ListViewItem item = new ListViewItem(); item.ImageIndex = j; listView1.Items.Add(item); ListViewItem item2 = new ListViewItem(); item2.SubItems.Add(j.ToString()); } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { int i = this.listView1.FocusedItem.Index; this.PicBox1.Image = this.imageList1.Images[i]; } On click i see only image of resolution of (40,40) becuse i have set it this.imageList1.ImageSize = new Size(40, 40); and not orignal size. How can I have it. 2- I want to write also image names and index(image no) under each images. Its it possible. reagrsd,

    Read the article

  • how to achieve Inter-Widget communication

    - by bakore
    I was looking for a platform where widgets developed using various technologies like Java can communicate with each other. In other words When I add widgets to an interface I need them to talk to each other. For example A Click event in one widget should trigger an event in some other widget. I have been looking into the web for solutions and ways to do it, but couldnt find anything concrete. Any pointers or information on this would be great. Something like this http://blogs.sun.com/pdblog/entry/inter_widget_communication_in_cross

    Read the article

  • Only first word of two strings gets added to db

    - by dkgeld
    When trying to add words to a database via php, only the first word of both strings gets added. I send the text via this code: public void sendTextToDB() { valcom = editText1.getText().toString(); valnm = editText2.getText().toString(); t = new Thread() { public void run() { try { url = new URL("http://10.0.2.2/HB/hikebuddy.php?function=setcomm&comment="+valcom+"&name="+valnm); h = (HttpURLConnection)url.openConnection(); if( h.getResponseCode() == HttpURLConnection.HTTP_OK){ is = h.getInputStream(); }else{ is = h.getErrorStream(); } h.disconnect(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("Test", "CONNECTION FAILED 1"); } } }; t.start(); } When tested with spaces and commas etc. in a browser, the php function adds all text. The strings also return the full value when inserted into a dialog. How do I fix this? Thank you.

    Read the article

  • Different output between release and Debug

    - by AthomSfere
    I can't figure this one out. I have a c++ Application that works in Debug mode exactly as expected: #include "stdafx.h" #include <string> #include <Windows.h> #include <iostream> using namespace std; void truncateServer(std::string inString); int _tmain(int argc, char *argv[]) { char* server = argv[1]; truncateServer(server); } void truncateServer(std::string inString) { std::string server = ""; int whackCount = 0; for (unsigned int i = 0; i < inString.length(); i++) { char c = inString[i]; if (whackCount < 3) { if (c == '\\') whackCount++; else server += c; } } cout << server; } For example if I call the server I want via its UNC path \\serverName\Share\ in the debug it gives me exactly what I want: servername However, if I use the release build I get nothing: I deleted the release output folder, but the issue is exactly the same. I can only assume there is some other difference between the release and build applications that is exposing a major issue with my code? Or another difference between the outputs I need to account for. What do I need to do to get the expected output?

    Read the article

  • LinQ optimization

    - by Budda
    Here is a peace of code: void MyFunc(List<MyObj> objects) { MyFunc1(objects); foreach( MyObj obj in objects.Where(obj1=>obj1.Good)) { // Do Action With Good Object } } void MyFunc1(List<MyObj> objects) { int iGoodCount = objects.Where(obj1=>obj1.Good).Count(); BeHappy(iGoodCount); // do other stuff with 'objects' collection } Here we see that collection is analyzed twice and each time the value of 'Good' property is checked for each member: 1st time when calculating count of good objects, 2nd - when iterating through all good objects. It is desirable to have that optimized, and here is a straightforward solution: before call to MyFunc1 makecreate an additional temporary collection of good objects only (goodObjects, it can be IEnumerable); get count of these objects and pass it as an additional parameter to MyFunc1; in the 'MyFunc' method iterate not through 'objects.Where(...)' but through the 'goodObjects' collection. Not too bad approach (as far as I see), but additional parameter is required to be passed. Question: is there any LinQ out-of-the-box functionality that allows any caching during 1st Where().Count(), remembering a processed collection and use it in the next iteration? Any thoughts are welcome. Thanks.

    Read the article

  • What do I do with a Concrete Syntax Tree?

    - by Cap
    I'm using pyPEG to create a parse tree for a simple grammar. The tree is represented using lists and tuples. Here's an example: [('command', [('directives', [('directive', [('name', 'retrieve')]), ('directive', [('name', 'commit')])]), ('filename', [('name', 'f30502')])])] My question is what do I do with it at this point? I know a lot depends on what I am trying to do, but I haven't been able to find much about consuming/using parse trees, only creating them. Does anyone have any pointers to references I might use? Thanks for your help.

    Read the article

  • Access to and availability of private member functions in C++

    - by David
    I am wandering the desert of my brain. I'm trying to write something like the following: class MyClass { // Peripherally Related Stuff public: void TakeAnAction(int oneThing, int anotherThing) { switch(oneThing){ case THING_A: TakeThisActionWith(anotherThing); break; //cases THINGS_NOT_A: }; }; private: void TakeThisActionWith(int thing) { string outcome = new string; outcome = LookUpOutcome(thing); // Do some stuff based on outcome return; } string LookUpOutcome(int key) { string oc = new string; oc = MyPrivateMap[key]; return oc; } map<int, string> MyPrivateMap; Then in the .cc file where I am actually using these things, while compiling the TakeAnAction section, it [CC, the solaris compiler] throws an an error: 'The function LookUpOutcome must have a prototype' and bombs out. In my header file, I have declared 'string LookUpOutcome(int key);' in the private section of the class. I have tried all sorts of variations. I tried to use 'this' for a little while, and it gave me 'Can only use this in non-static member function.' Sadly, I haven't declared anything static and these are all, putatively, member functions. I tried it [on TakeAnAction and LookUp] when I got the error, but I got something like, 'Can't access MyPrivateMap from LookUp'. MyPrivateMap could be made public and I could refer to it directly, I guess, but my sensibility says that is not the right way to go about this [that means that namespace scoped helper functions are out, I think]. I also guess I could just inline the lookup and subsequent other stuff, but my line-o-meter goes on tilt. I'm trying desperately not to kludge it.

    Read the article

  • Java REST Interface

    - by Vikram
    I have a PHP web application environment. I am using Slim Framework as REST interface for my application. My application front-end is written using Backbone.js and jQuery. There is a utility (.jar file) which when I use command line makes a remote call (I guess this is a Web Service) which returns me the data. how do I best incorporate this into my webapplication described on top? My application front end will have a Button that should make an AJAX call to the REST Interface and fetch the data as JSON. My approach: PHP-REST interface url is: /api/phprestapi.php exists Add a JAVA-REST interface at url: /api/javarestapi.java (Perhaps) to separate these two Existing Environment: LAMP Stack on Ubuntu How do I achieve this? What is the kind of effort involved? Thanks for your pointers

    Read the article

  • How is the implicit segment register of a near pointer determined?

    - by Daniel Trebbien
    In section 4.3 of Intel 64® and IA-32 Architectures Software Developer's Manual. Volume 1: Basic Architecture, it says: A near pointer is a 32-bit offset ... within a segment. Near pointers are used for all memory references in a flat memory model or for references in a segmented model where the identity of the segment being accessed is implied. This leads me to wondering: how is the implied segment register determined? I know that (%eip) and displaced (%eip) (e.g. -4(%eip)) addresses use %cs by default, and that (%esp) and displaced (%esp) addresses use %ss, but what about (%eax), (%edx), (%edi), (%ebp) etc., and can the implicit segment register depend also on the instruction that the memory address operand appears in?

    Read the article

  • extra storage merge sort

    - by davit-datuashvili
    I need make a merge sort using an additional array. Here is my code: public class extra_storage{ public static void main(String[]args) { int x[]=new int[]{12,9,4,99,120,1,3,10}; int a[]=new int[x.length]; mergesort(x,0,x.length-1,a); for (int i=0;i<x.length;i++){ System.out.println(x[i]); } } public static void mergesort(int x[],int low,int high, int a[]){ if (low>=high) { return; } int middle=(low+high)/2; mergesort(x,low,middle,a); mergesort(x,middle+1,high,a); int k; int lo=low; int h=high; for (k=low;k<high;k++) if ((lo<=middle ) && ((h>high)||(x[lo]<x[h]))){ a[k]=x[lo++]; } else { a[k]=x[h++]; } for (k=low;k<=high;k++){ x[k]=a[k]; } } } But something is wrong. When I run it the output is this: 1 0 3 0 4 0 9 0 What is the problem?

    Read the article

  • Creating a textarea with auto-resize

    - by DisgruntledGoat
    There was another thread about this, which I've tried. But there is one problem: the textarea doesn't shrink if you delete the content. I can't find any way to shrink it to the correct size - the clientHeight value comes back as the full size of the textarea, not its contents. The code from that page is below. I'd appreciate any help or pointers. function FitToContent(id, maxHeight) { var text = id && id.style ? id : document.getElementById(id); if ( !text ) return; var adjustedHeight = text.clientHeight; if ( !maxHeight || maxHeight > adjustedHeight ) { adjustedHeight = Math.max(text.scrollHeight, adjustedHeight); if ( maxHeight ) adjustedHeight = Math.min(maxHeight, adjustedHeight); if ( adjustedHeight > text.clientHeight ) text.style.height = adjustedHeight + "px"; } } window.onload = function() { document.getElementById("ta").onkeyup = function() { FitToContent( this, 500 ) }; }

    Read the article

  • In B-trees which element gets promoted when the node splits

    - by Phenom
    Let's say there is a B-tree of order 8. This means it can have 8 pointers and 7 elements. Say the letters A through G are stored in this B-tree. So this B-tree is just a single node containing 7 elements. Then you try to insert J into the tree. There's no room, so you have to split the node and create a new root node. Which element gets promoted up into the root node?

    Read the article

  • Null Pointer Exception

    - by user1507835
    I am getting a null pointer exception, but I dont know why. I checked to see if the cell was null before I read it to a string. So, why is that string null? private void fillArray() private void fillArray() { try { readBook = new HSSFWorkbook(readFile); } catch (IOException e) { System.out .println("If we know what we're doing, no one should ever see this line."); } if (readBook != null) {HSSFSheet infoSheet = readBook.getSheetAt(0); HSSFRow headingsRow = infoSheet.getRow(0); int i = 0; HSSFCell cell = headingsRow.getCell(i); String columnHeading = cell.toString(); while (cell != null && !(cell.toString().equals(""))) { cell = headingsRow.getCell(i); columnHeading = cell.toString(); columnHeadings.add(columnHeading); i++; } if(columnListIsSetup == false) { createList(); columnListIsSetup = true; } }

    Read the article

  • vs2002: c# multi threading question..

    - by dotnet-practitioner
    I would like to invoke heavy duty method dowork on a separate thread and kill it if its taking longer than 3 seconds. Is there any problem with the following code? class Class1 { /// <summary> /// The main entry point for the application. /// </summary> /// [STAThread] static void Main(string[] args) { Console.WriteLine("starting new thread"); Thread t = new Thread(new ThreadStart(dowork)); t.Start(); DateTime start = DateTime.Now; TimeSpan span = DateTime.Now.Subtract(start); bool wait = true; while (wait == true) { if (span.Seconds>3) { t.Abort(); wait = false; } span = DateTime.Now.Subtract(start); } Console.WriteLine("ending new thread after seconds = {0}", span.Seconds); Console.WriteLine("all done"); Console.ReadLine(); } static void dowork() { Console.WriteLine("doing heavy work inside hello"); Thread.Sleep(7000); Console.WriteLine("*** finished**** doing heavy work inside hello"); } }

    Read the article

  • Error emailing outgoing sms

    - by BirthOfTragedy
    Is there anyway to listen for an outbound sms without having to import javax.wireless.messaging? I'm trying to write an app that listens for an sms sent from the device then emails the message of the sms, but I get the error: reference to Message is ambiguous, both class javax.wireless.messaging.Message in javax.wireless.messaging and class net.rim.blackberry.api.mail.Message in net.rim.blackberry.api.mail match I need to import net.rim.blackberry.api.mail.Message in order to sent an email. Is there a way to get around this as it seems that the two packages are clashing. My code: public void notifyIncomingMessage(MessageConnection messageconnection) {} public void notifyOutgoingMessage(javax.wireless.messaging.Message message) { try { String address = message.getAddress(); String msg = null; if ( message instanceof TextMessage ) { TextMessage tm = (TextMessage)message; msg = tm.getPayloadText(); } else if (message instanceof BinaryMessage) { StringBuffer buf = new StringBuffer(); byte[] data = ((BinaryMessage) message).getPayloadData(); msg = new String(data, "UTF-8"); Store store = Session.getDefaultInstance().getStore(); Folder[] folders = store.list(Folder.SENT); Folder sentfolder = folders[0]; Message in = new Message(sentfolder); Address recipients[] = new Address[1]; recipients[0]= new Address("[email protected]", "user"); in.addRecipients(Message.RecipientType.TO, recipients); in.setSubject("Outgoing sms"); in.setContent("You have just sent an sms to: " + address + "\n" + "Message: " + msg); in.setPriority(Message.Priority.HIGH); Transport.send(in); in.setFlag(Message.Flag.OPENED, true); Folder folder = in.getFolder(); folder.deleteMessage(in); } } catch (IOException me) { System.out.println(me); } } }

    Read the article

  • Android AutocompleteView OnClickListener

    - by Chirag_RB
    I have 2 Auto Complete Views which i have to pre-populate with some text .However as soon as user clicks on the views , the text should disappear and allow user to enter text . I have written two separate on click listeners to do so . The On click listener for the first one is working fine . However i have to double click for the On click listener of the second one to work. Please find the chunk of code below and come up with some solution . final AutoCompleteTextView source = (AutoCompleteTextView) findViewById(R.id.source); ArrayAdapter source_adapter = new ArrayAdapter(this, R.layout.list_item, Model.City); source.setAdapter(source_adapter); source.setOnClickListener(new OnClickListener(){ public void onClick(View v) { source.setText(""); source.setTextSize(14); } }); final AutoCompleteTextView destination = (AutoCompleteTextView) findViewById(R.id.destination); ArrayAdapter destination_adapter = new ArrayAdapter(this, R.layout.list_item, Model.City); destination.setAdapter(destination_adapter); destination.setOnClickListener(new OnClickListener(){ public void onClick(View v) { destination.setText(""); destination.setTextSize(14); } });

    Read the article

  • Hiding instantiated templates in shared library created with g++

    - by jchl
    I have a file that contains the following: #include <map> class A {}; void doSomething() { std::map<int, A> m; } When compiled into a shared library with g++, the library contains dynamic symbols for all the methods of std::map<int, A>. Since A is private to this file, there is no possibility that std::map will be instantiated in any other shared library with the same parameters, so I'd like to make the template instantiation hidden (for some of the reasons described in this document). I thought I should be able to do this by adding an explicit instantiation of the template class and marking it as hidden, like so: #include <map> class A {}; template class __attribute__((visibility ("hidden"))) std::map<int, A>; void doSomething() { std::map<int, A> m; } However, this has no effect: the symbols are still all exported. I even tried compiling with -fvisibility=hidden, but this also has no effect on the visibility of the methods of std::map<int, A> (although it does hide doSomething). The document I linked to above describes the use of export maps to restrict visibility, but that seems very tedious. Is there a way to do what I want in g++ (other than using export maps)? If so, what is it? If not, is there a good reason why these symbols must always be exported, or is this just a omission in g++?

    Read the article

< Previous Page | 426 427 428 429 430 431 432 433 434 435 436 437  | Next Page >