zelenski / stanford-cpp-library Goto Github PK
View Code? Open in Web Editor NEWStanford C++ library used in CS106B/X courses
Stanford C++ library used in CS106B/X courses
when building the project BothLibraryWelcome, i have encountered an error : can not create files or directories like the picture, the details are listed below:
can not create directories or files。
can not create directories or files。
mingw32-make[2]: *** [Makefile.Release:11488: install_target] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
mingw32-make[2]: *** [Makefile.Release:11497: install_headers] Error 1
D:\Qt\6.2.2\mingw_64\bin\qmake.exe -install qinstall D:\CS\Cpp\stanford-cpp-library-master\Library\personaltypes.py d:\Qt\Tools\QtCreator\share\qtcreator\debugger\personaltypes.py
mingw32-make[2]: Leaving directory 'D:/CS/Cpp/build-BothLibraryWelcome-Desktop_Qt_6_2_2_MinGW_64_bit-Debug/Library'
mingw32-make[1]: Leaving directory 'D:/CS/Cpp/build-BothLibraryWelcome-Desktop_Qt_6_2_2_MinGW_64_bit-Debug/Library'
mingw32-make[1]: *** [Makefile:56: release-install] Error 2
mingw32-make: *** [Makefile:51: sub-Library-make_first-ordered] Error 2
21:26:31: 进程"D:\Qt\Tools\mingw1120_64\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project BothLibraryWelcome (kit: Desktop Qt 6.2.2 MinGW 64-bit)
When executing step "Make"
The source code file JBEConsole.java
can only be found in the decompiled directory. But due to the decompiling, the code in that directory is messy, some even contains errors.
Is it possible to open source this file as well?
If a GSlider has been assigned an action command via setActionCommand, a bug in parseActionEvent causes a crash when sliding the slider:
*** STANFORD C++ LIBRARY
*** An ErrorException occurred during program execution:
*** TokenScanner::verifyToken: Found ")" when expecting ","
input = "actionPerformed("0x7fcb52f00060", "slidey", 1489717353800)"
***
*** Stack trace (line numbers are approximate):
*** in jl-tests error(const string&)
*** in jl-tests TokenScanner::verifyToken(const string&)
*** in jl-tests parseActionEvent(TokenScanner&, EventType)
*** in jl-tests parseEvent(const string&)
*** in jl-tests getResult(bool, bool, const string&)
*** in jl-tests stanfordcpplib::Platform::gevent_waitForEvent(int)
*** in jl-tests waitForEvent(int)
*** in jl-tests main()
***
Minimal example:
#include "gevents.h"
#include "ginteractors.h"
#include "gwindow.h"
int main()
{
GWindow gw;
GSlider *slider = new GSlider();
slider->setActionCommand("slidey");
gw.addToRegion(slider, "SOUTH");
while (true)
GEvent e = waitForEvent();
return 0;
}
Current implementation of LinkedHashMap use a vector to store the insertion order.
The time complexity of remove is O(N).
However, doubly linked list can be used to store the insertion order.
Then the time complexity of remove is O(1).
The Grid<T>::locations()
function returns a GridLocationRange
spanning the whole Grid
. If the Grid
has dimension m x 0 or 0 x n, the GridLocationRange
will appear nonempty and looping over its contents will produce indices that are out of range. Therefore, code like this may crash:
Grid<T> grid(0, 4);
for (GridLocation loc: grid.locations()) {
cout << grid[loc] << endl;
}
The expected behavior here would be to have the loop not visit any locations.
Some of the GXXXEvent(GEvent)
constructors don't copy the gwd pointer, so calling getGWindow()
on the constructed object returns a garbage pointer.
Small example that produces a segmentation fault when user types in graphics window:
#include <iostream>
#include "console.h"
#include "gevents.h"
#include "gwindow.h"
using namespace std;
int main() {
GWindow gw;
gw.setWindowTitle("Key Event Test");
gw.add(new GLabel("Click in here and type!", 20, 20));
cout << "Ready." << endl;
while (true) {
GEvent e = waitForEvent();
EventType type = e.getEventType();
if (e.getEventClass() == KEY_EVENT) {
GKeyEvent ke(e); // "private" (i.e., undocumented) constructor, but still ...
std::cout << e.toString() << std::endl;
cout << "Key event: " << ke.toString() << endl;
cout << "Window: " << ke.getGWindow().getWindowTitle() << endl;
}
}
return 0;
}
Location:
Karel->src->KarelProgram.java
in code lines 253 and 278 give me the same error:"Cannot reduce the visibility of the inherited method from Program".
loadConfiguration() and saveConfiguration() are underlined with red.
253 private void loadConfiguration() {...
278 private void saveConfiguration() {...
editing private for public gives error "Cannot override the final method from Program".
This problem makes the whole Karel library obsolete. New java program, that extends Karel or SuperKarel, cannot run, showing error "Could not find or load main class (name of new program)".
i am new to Github, I hope it is the right place to write about it.
simpio.h: documentation for use of reprompt says when "file not found" when should be "value not integer" or whatever
vector.h: misspelling ErrorExceptoin
note.c: misspelling ilegal
hell@ubuntu(~/shelterDataStuctAlgo/stanfordCPPlib):(master) ./asan
cost: 0 name: s
s --- t
s --- y
cost: 5 name: y
y --- t
y --- x
y --- z
cost: 7 name: z
z --- s
z --- x
cost: 8 name: t
t --- x
t --- y
cost: 9 name: x
x --- z
==9740==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 5 byte(s) in 5 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Vertex*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::getNeighbors(Vertex*) const, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/././StanfordCPPLib/graph.h:696:28]
[frame=5, function=Dijkstra(BasicGraph&, Vertex*), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:384:26]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:414:5]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Vertex*, bool>::deepCopy(Map<Vertex*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Vertex*, bool>::operator=(Map<Vertex*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Vertex*>::operator=(Set<Vertex*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:518:11]
[frame=7, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:519:12]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp:19:38]
[frame=4, function=_GLOBAL__sub_I_server.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp]
[frame=5, function=__libc_csu_init, location=]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:519:10]
[frame=7, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::TemplateComparatorstd::__1::less::TemplateComparator(std::__1::less), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init.4, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp:22:30]
[frame=4, function=_GLOBAL__sub_I_server.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp]
[frame=5, function=__libc_csu_init, location=]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparatorstd::__1::less<Vertex* >::TemplateComparator(std::__1::less<Vertex*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Dijkstra(BasicGraph&, Vertex*), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:365:18]
[frame=5, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:414:5]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Vertex*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:518:13]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, Vertex*>::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, Vertex*>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, int>::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, int>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/gwindow.cpp:87:30]
[frame=4, function=_GLOBAL__sub_I_gwindow.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/gwindow.cpp]
[frame=5, function=__libc_csu_init, location=]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparatorstd::__1::less<Vertex* >::TemplateComparator(std::__1::less<Vertex*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]
SUMMARY: AddressSanitizer: 143 byte(s) leaked in 38 allocation(s).
hell@ubuntu(~/shelterDataStuctAlgo/stanfordCPPlib):(master)
Hello,
Thank you for the great library. I want to use this library in CLion and add it into cmakelist.txt file. I use:
file(GLOB SOURCES
StanfordCPPLib/collections/.h
StanfordCPPLib/collections/.cpp
StanfordCPPLib/graphics/.h
StanfordCPPLib/graphics/.cpp
StanfordCPPLib/io/.h
StanfordCPPLib/io/cpp
StanfordCPPLib/private/.h
StanfordCPPLib/private/.cpp
StanfordCPPLib/system/.h
StanfordCPPLib/system/.cpp
StanfordCPPLib/util/.h
StanfordCPPLib/util/.cpp
)
add_executable(myproject ${SOURCES})
But when I for example include strlib.h in my code, It says that : private/init.h: No such file or directory.
Do you have any idea how to make it work?
Thanks
hey @stepp! I wanted to ask if there were plans to set up testing / CI for the libraries here? I noticed a script pack-lib-into-single-cpp-file.sh
and inferred that is that how the final library is packaged for the homeworks?
What do you think about having some kind of continuous integration set up (and this could run tests and run this particular script to deploy.) I think it would be really fun to learn how to write modular tests for a larger library like this, even if we just start with very simple ones.
https://rules.sonarsource.com/c/RSPEC-874
But I spot vast bitwise operations on signed integers within the library.
Currently, you can write vec + elem
to get back a new Vector
that consists of all the elements of vec
with elem
appended to the. end. However, the reverse elem + vec
does not compile. We should consider adding an overload of operator+
that addresses this.
OS info
MacOSX10.14.5
Code
#include <iostream>
#include "basicgraph.h"
using namespace std;
int main() {
BasicGraph g;
g.addVertex("a");
g.addVertex("b");
g.addEdge("a", "b");
cout << g << endl;
return 0;
}
Error Log
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1584:43: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, node->name, stringIsInteger(node->name) || stringIsReal(node->name));
^
../sample-project/src/hello.cpp:14:10: note: in instantiation of function template specialization 'operator<<<VertexGen<void *, void *>, EdgeGen<void *, void *> >' requested here
cout << g << endl;
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1584:74: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, node->name, stringIsInteger(node->name) || stringIsReal(node->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1590:49: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->start->name, stringIsInteger(arc->start->name) || stringIsReal(arc->start->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1590:86: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->start->name, stringIsInteger(arc->start->name) || stringIsReal(arc->start->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1592:50: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->finish->name, stringIsInteger(arc->finish->name) || stringIsReal(arc->finish->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1592:88: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->finish->name, stringIsInteger(arc->finish->name) || stringIsReal(arc->finish->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
6 errors generated.
make: *** [hello.o] Error 1
13:42:54: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project sample-project (kit: Desktop Qt 5.12.4 clang 64bit)
When executing step "Make"
The GRectangle
type currently has no default constructor, so it's not possible to declare a variable of type GRectangle
without an initializer (e.g. GRectangle rect;
does not compile). This is a consequence of this earlier commit that fixed a separate issue whereby GRectangle
could be initialized to a double
or without all the needed initializers.
oops
xcopy ${QMAKE_FILE_IN}
will fail because the path is not correct. Consider use something like:
win32:COPY_RESOURCE_FILES_INPUT ~= s,/,\\,g
copy_resource_files.input = $$COPY_RESOURCE_FILES_INPUT
copy_resource_files.output = $${OUT_PWD}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_resource_files.CONFIG = no_link no_clean target_predeps
Maybe this is just a rpoblem for my platform. Haven't tested on other Windows computer.
Queued redraw events can contain state with invalid pointers. I have an example from Fall 2019 assignment 3, would be better to winnow to minimal example for testing.
Running code using the libraries on macOS generates warning messages about missing font aliases that display to stderr. Surprisingly, these seem to happen even for installed fonts like Didot and Monaco. I'm not sure whether this is
Either way, it would be good to track this down and fix it; this warning message is concerning to students even though it's not their fault.
when handling strings, the library makes quite a lot extra copy constructions. Some basic improvements:
std::move
before assign it to the class field.for (std::string i : container)
will copy-construct a string in each iteration. There are many cases in the library (for example, see system/exception.h
) that using a const reference is enough. As the library is to be shown to students, I guess better practice is needed to apply here.string_view
can be used if you just want to access some slices (C++17).(use this issue to track various quirks to be aware of)
Clang change for arm M1 broke pretty print of C++ string, we patched in library personaltypes.py file
Qt bug reports
If program is stuck in loop or long-running computation, closing console will halt program, but it is not obvious to student that is was interrupt -- use exit code and/or cout message to be more clear
Currently, there are two versions of the readEntireFile
function. One takes in the name of a file and returns a std::string
with the contents. The other takes in a filename and a Vector<string>&
, then populates the Vector<string>
.
There's also a readEntireStream
function. It has two overloads. One returns a string
containing the contents of the file. The other takes in a string
by reference and overwrites it with the contents of the stream.
We should consider making these functions more consistent with one another. Perhaps all versions should work with Vector<string>
? Or, alternatively, maybe we should remove the ones that take reference parameters and have them just return string
s? From there the client could stringSplit
them apart if that's what they want.
When I create a HashMap, it told me that
xxxx/StanfordCPPLib/collections/collections.h:32:10: fatal error: gmath.h: No such file or directory
#include "gmath.h"
^~~~~~~~~
compilation terminated.
when I copy the "gmath.h" from the util/ folder to collections/, the other "random.h", "strlib.h", "gtypes.h" and so on come one by one. Definitely, I can either copy the file into the folder or change the relative path. But I have I no idea how to deal with the "#include " since I cannot find it anywhere...
The GImage
type has a function GImage::scale
that scales the image. When the image is scaled, it is drawn on the screen at the wrong coordinates; it seems like the x
and y
coordinates of the image are also scaled by the scale factor. The rendering code might need to invert the scale transform on the x
and y
coordinates before first drawing things.
Our current assignment operator implementations use this general idiom:
Object& operator =(const Object& rhs) {
if (this != &other) {
clear();
deepCopy(other);
}
return *this;
}
This has a few drawbacks:
The more modern C++ approach is to write an assignment operator like this:
Object& operator =(Object rhs) {
swap(*this, rhs);
return *this;
}
This "construct-and-swap" idiom just requires the definition of a swap function that does a memberwise swap and lets the compiler decide whether to construct the argument using copy semantics or move semantics. There's no need to factor the copy logic out of the constructor.
Error:
***
*** STANFORD C++ LIBRARY
*** An ErrorException occurred during program execution:
*** DawgLexicon::addWordsFromFile: Improperly formed lexicon file
***
*** Stack trace (line numbers are approximate):
*** in empty-project error(const string&)
*** in empty-project DawgLexicon::readBinaryFile(istream&)
*** in empty-project DawgLexicon::addWordsFromFile(istream&)
*** in empty-project DawgLexicon::DawgLexicon(istream&)
*** in empty-project DawgLexicon::DawgLexicon(istream&)
*** in empty-project Lexicon::readBinaryFile(istream&)
*** in empty-project Lexicon::addWordsFromFile(istream&)
*** in empty-project Lexicon::addWordsFromFile(const string&)
*** in empty-project Lexicon::Lexicon(const string&)
*** in empty-project Lexicon::Lexicon(const string&)
*** in empty-project main()
***
libc++abi.dylib: terminate_handler unexpectedly threw an exception
The program has unexpectedly finished.
readBinaryFile() (https://github.com/stepp/stanford-cpp-library/blob/master/StanfordCPPLib/collections/dawglexicon.cpp#L414) should seek from the beginning. But in addWordsFromFile() (https://github.com/stepp/stanford-cpp-library/blob/master/StanfordCPPLib/collections/dawglexicon.cpp#L140) the function reads the first 4 chars, leading to the error.
The JavaBackEnd/eclipseproject/src/acm/graphics/GObject.java
declares paint
as a final method, while the JavaTaskForce/src/acm/graphics/GRect.java
inheriting from GObject
implements the paint
method again.
Am I using mismatched versions of these files? Did I miss anything?
The assignment from course website for windows can not be compiled by VS2013, I got many link errors. Is there any way to compile the source code on windows?
The Set<T>
and Map<T, V>
types will report nice static_assert
errors to students if T
is not a comparable type. However, the relative comparison operators between Vector<T>
, which can only operate if T
is comparable, do not trigger these sorts of static_assert
s. There is a lovely and helpful message at the spot in the template code where instantiation fails, but it can easily be missed by students in a wall of template errors when that happens.
First, the change to QMAKE_COPY is not present in the first homework assignment. I'm not sure how that system works, but thought you should know.
Second, when the QMAKE_COPY is used, it fails to copy recursively. replacing with QMAKE_COPY_DIR worked for me, but no idea how this would effect standard windows environments.
Tim
My copy of EnglishWords.dat (a lexicon data file in the DAWG format) contains the byte 1A
at position 0x80 (fairly early in the file, in one of the first few edge structs). When using an istream's read()
to read data from a file opened in "text" mode on Windows, 1A
is treated as an end-of-file marker, unfortunately, so input.read((char*) edges, numBytes)
in DawgLexicon::readBinaryFile(std::istream& input)
does not read all numBytes
bytes. This leads to a segmentation fault in DawgLexicon::countDawgWords(Edge* ep)
.
My fix is to pass in the std::ios::binary
flag when opening files in Lexicon::addWordsFromFile(string &filename)
and in DawgLexicon::addWordsFromFile(string &filename)
.
Timeout leaves stream redirect in weird state, subsequent tests go wonky. I have Boggle submission from Fall 2019 that reproduces.
Attempting in-process recovery from timeout/segfault is hard. Slower as separate process, but a lot less dicey...
For stack-allocated array, we actually have no need to do extra calculation in runtime.
template <typename T, size_t Size>
constexpr size_t array_length(T (&)[Size]) {
return Size;
}
// macro to get the length of a stack-allocated array
#define ARRAY_LENGTH(a) array_length((a))
The Map
type has a const
overload of operator[]
that will not perform auto-insertion of a key/value pair. The current signature for this function is
ValueType Map<K, V>::operator [](const KeyType& key) const;
There are two issues with this:
ValueType
in the Map
is returned by value. This means that it is slower to invoke operator[]
on a const Map
than on a non-const
Map
. The rationale for this decision is that it allows the Map
to return a value rather than a reference when the key is not in the Map
, but when working with a large or complex Map
this is a big performance hit.ValueType
is not marked const
, which means that it's possible to say things like myConstMap[key] = value;
when ValueType
is an object like a string
or Vector
. This code compiles and appears to update the Map
, but has no effect.A proposed solution: change the return type of this function to const ValueType&
. To handle the case where the associated key is not present, inside the Map
, add a std::unique_ptr<ValueType>
that is lazily initialized to point to a ValueType
object when needed. Returning a const
reference to the ValueType
will then satisfy all the requirements of the function contract while avoiding the two above issues.
At present, the Set
and HashSet
types layer on top of GenericSet
and forward template arguments to GenericSet
. In the case where those template arguments would result in an instantiation error, the constructors are still selected in overload resolution and lead to weird error messages during instantiation. A better solution would be to use std::enable_if
etc. to disable those constructors unless arguments of the proper types are provided.
(This isn't purely hypothetical; when implementing Optional<T>
for my CS106B offering, I ran into a weird overload selection issue that required some special-casing for the Set
type.)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.