C++ :: Compile Error With Static Template Function
Nov 29, 2012
The below code compiles without error using VS 2012 but with g++ 4.1.2 I get this error:
Code:
main.cpp: In function 'int main(int, char**)':
main.cpp:37: error: no matching function for call to 'StringHelper::stringToNumeric(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
Here is the code:
#include <string>
#include "boost/lexical_cast.hpp"
using boost::lexical_cast;
using boost::bad_lexical_cast;
class StringHelper {
[Code] ....
This is part of a larger program so in reality StringHelper has more static functions but this example does produce the error the same as the code when in the larger program.
To get it to compile under g++ I had to assign the return value from substr() to a string and pass that string to stringToNumeric. Why do I have to do this for g++ and not VS? Do I have something wrong with my template function that g++ is calling out and VS is not?
View 4 Replies
ADVERTISEMENT
Jul 18, 2012
I try to create small project in order to better understand how key word static works with templates . However some compiles errors crush my plan.
1>------ Build started: Project: 4.2b - Ex 1. Static Variable for Array Def Size. Templates, Configuration: Release Win32 ------
1> main.cpp
1>c:all myс++ha level 6solution level 6solution level 64.2b - ex1. static variable for array def size. templatesarray.cpp(40): error C2724: 'Array<Type>:efaultSize' : 'static' should not be used on member functions defined at file scope
[Code] .....
View 7 Replies
View Related
Mar 8, 2013
I wrote a binary function based on existing template:
template <class T> struct percentage : binary_function <T,T,double> {
double operator() (const T& x, const T& y) const
{return x*1.0/(x+y);}
};
I call it in form of percentage<int>() When I compile, it's indicated: error C2143: syntax error : missing ',' before '<' I use VC 2012.
View 5 Replies
View Related
Sep 24, 2014
i was working to compile the code below. Unfortunately it didn't compile and give me the known error error: attempt to use poisoned "calloc".
This is how i compile it :
gcc -I/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/plugin/include -fPIC -O0 -Wall -pedantic -std=c99 -c decode.c decode.o
decode.c
#include <stdio.h>
#include <coretypes.h>
#include <gcc-plugin.h>
#include <gimple.h>
#include <tree.h>
[code]....
View 1 Replies
View Related
Feb 27, 2013
So on lines 36 - 39 (The commented out functions) is where I'm sure is causing this error because once I don't comment them out pretty much everywhere Flink or Rlink is used or defined I get this error.
#ifndef nodes_Nodes_h
#define nodes_Nodes_h
#include <cstdlib>
[Code]....
View 4 Replies
View Related
Sep 4, 2012
I am trying to use 'this' pointer but i am confused why 'this' pointer is not available for static member functions.
Code:
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
const int MAX = 20;
const int MAXPTR = 100;
class name {
private :
char fname[MAX], mname[MAX], lname[MAX];
[code].....
I am using GNU GCC Compiler via Code::Block
Error : 'this' is unavailable for static member functions
View 4 Replies
View Related
Feb 10, 2013
I am modifying a set of static variables inside of the class's member function. The static variables are private. An example of what I'm doing is as below,
utilities.h
-----------
class utilities {
private:
static int num_nodes;
public:
void parse_details(char* );
[Code] ....
I get a compilation error in the function void utilities::parse_details(char* filename)
which says: undefined reference to `utilities::num_nodes'
compiler: g++
View 2 Replies
View Related
Apr 10, 2014
I have been trying to compile this program for 3 days. he subject is my error. I know it has something to do with including the cpp file with the header file however my textbook says this is what I must do in order to use templates. I have tried 2 compilers Code Blocks and Microsoft Visual C++ express 2010.
Here is my code:
header file
#pragma once
#ifndef _NODE
#define _NODE
template<class ItemType>
class Node {
[Code] ....
View 9 Replies
View Related
Apr 30, 2012
When I do this:
// header file:
#include <list>
using namespace std;
class myClass {
list<int> myMethod();
};
// cpp file:
list<int> myClass::myMethod() {
}
In the cpp file, 'myMethod' is underlined in red and when I hover over it, it says:
"std::list<int, std::allocator<int>> myClass::myMethod()
Error: declaration is incompatible with "<error-type> myClass::myMethod()""
But when I make it as a standalone function, outside a class, with no pre-declaration, there is no problem.
View 8 Replies
View Related
Sep 6, 2013
Can people just do a quick sanity check of this concept?
I'm playing around with a technique to parameterise a template with the largest 'sizeof' result for a set of classes.
A, B, C & D are classes with 1, 2, 3 & 4 members respectively.
e is an instance of E, who's array member is sized according to the largest size of A, B, C or D.
Code:
// MaxSizeOf for four parameters.
template <const size_t S1,
const size_t S2,
const size_t S3 = 0,
const size_t S4 = 0>
struct MaxSizeOf
[code].....
View 11 Replies
View Related
Aug 26, 2014
I need a static hash table to keep track of all objects of a particular type that are instantiated in a Qt application but I have never used a template class as a static member object before and I can't seem to figure out how to initialize it. QHash is the hash table class that follows the template convetion:
template<class key, class data>
QString is probably self explanatory.
Example Header:
class MyClass {
...
private:
static QHash<QString, MyClass*> instanceTable;
}
Here is my source that doesn't compile.
Example Source
#include header.h
// using default constructor for table...
QHash<QString key, MyClass* instance> MyClass::instanceTable(); // gives Error below.
// Error in above line is "Declaration is incompatible with QHash<QString, Myclass*>"
I have tried doing it a number of different ways and none of them work. How do you initialize a static template object?
View 2 Replies
View Related
Apr 18, 2013
class Tracker {
public:
static const int type;
typedef cv_types::CvType<type>::type_t type_t;
};
const int Tracker::type = 1;
gives me the error:
'I' : invalid template argument for 'cv_types::CvType', expected compile-time constant expression
Shouldn't the static const int be a compile time constant?
How would I specify it, so that it works?
PS.: The code works with #define type 1 at the top of the file and without the static const int.
View 3 Replies
View Related
Jan 17, 2013
I have a little problem with template classes and their specialization. Here is a short example:
template <typename T>
struct A{
// some typedefs
[Code]....
The above example is not compiling, because of the assignment of the const static double. Double needs a constructor, but that doesn't work (or seems not to work) with static.
I'm not sure, if it works at all in C++ that way. All I want is a template struct with some typedefs and a constant which is different for different specializations. Don't think it has to be static, but that would be better style, wouldn't it?
View 3 Replies
View Related
Sep 27, 2014
what can i do to fix ? why do i get the error ?
View 2 Replies
View Related
Jan 16, 2014
Here is the code which I wrote in Turbo C++...its giving errors..
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
voidmain() {
clrscr();
[code]....
View 8 Replies
View Related
Nov 19, 2013
So I made a library for a whole bunch of functions and when i compile it, it says"Unresolved external symbol_(Name of function here) referenced in function main.
View 1 Replies
View Related
Oct 17, 2013
I am trying to compile some code under opensuse 12.2. The code compiles fine under cygwin and CentOS. Under suse, I get the error "directory name must immediately follow -I"
This is the place in make where the error happens.
Code:
g77-3.3 -I ./src/src_common_depend/ -O2 -DVERNUM=6 -c -o bld_dir/FortranA.o src/src_client_main/FortranA.FOR
f771: error: directory name must immediately follow -I
The includes are specified in the make file with,
SOURCELOC = ./src
INCLUDES = -I ${SOURCELOC}/src_common_depend/
These are common includes that are used by more than one applications and so are stored in a common location.
I have tried leaving off the ./ and the trailing /
SOURCELOC = src
INCLUDES = -I ${SOURCELOC}/src_common_depend
And various similar combinations, including parenthesis instead of the curly braces.
I'm not sure why gcc under suse would be particular about this syntax when gcc under other distros seem to think it's fine.
This is the compile rule that g77 is implementing where the error occurs:
# compile src fortran objects with fortran preprocessor
$(BDIR)/%.o: $(SOURCELOC)/src_client_main/%.FOR
$(FCOMP) $(FCFLAGS) $(VFLAGS) -c -o $@ $<
View 11 Replies
View Related
Dec 5, 2013
I'm trying to implement a simple template array class, but when i came into the operator< i actually have to use a template :
my code is something like :
template<typename _Type, std::size_t _Size>
class array {
public :
[Code] ......
but i am having an error of shadows template param 'class _Type' is it w/ the name conflict between the array template parameter and the function template parameter ?
View 6 Replies
View Related
Mar 14, 2014
I have a function:
template<class Iterator, class T>
void a(Iterator, Iterator, const T&);
and I want to be able to simplify calls to 'a' with calls like
a(someIteratableContainer);
instead of having to call:
a(someIteratableContainer.begin(), someIteratableContainer.end(), valueOfTheContainersElementType);
I also want to be able to generalize the function to handle any of the standard iteratable contains: array, vector, deque, whatever.
I was under the impression I could write:
template<template<class T> class U> a(U<T>& container) {
a(container.begin(), container.end(), g(T()));
}
where 'g()' returns an object of the element type. However, the compiler is claiming, no matter how I write a call to the overload, the original template is selected and/or the overload is invalid, depending on the various ways I attempt to write said overload.
View 7 Replies
View Related
Oct 7, 2014
How to initialize a static member of a class with template, which type is related to a nested class?
This code works (without nested class):
#include<iostream>
using namespace std;
struct B{
B(){cout<<"here"<<endl;}
};
template<typename Z>
[Code] ,....
View 1 Replies
View Related
Feb 16, 2012
I am trying to build an application that has one static library dependency, however I am getting this error when linking:
1>ClCompile:
1> All outputs are up-to-date.
1>LINK : fatal error LNK1104: cannot open file 'TestWrapperLib.obj'
Why I might be getting that? I have the .lib in the depends line, and the directory where it is at in the include line.
View 1 Replies
View Related
Apr 16, 2013
I have an issue converting VC++6 code to VC++ 2010. The following template function definition is not allowed by the new compiler:
template <> void AFXAPI DelElems <CBrush*> ( CPen** objects, int count ) {
for ( int i = 0; i < count; i++, objects++ )
if (*objects)
delete *objects;
}
All errors refer to the header of the template function:
- syntax error : '<'
- syntax error : missing ';' before '<'
- 'DelElems' : illegal use of type 'void'
- unrecognizable template declaration/definition
View 4 Replies
View Related
Feb 11, 2013
i need a function that will work for both dynamic and static implementations of a function to get the transverse of a matrix. so far, i have this
Code:
matrix transpose(matrix m)
{
int row, col;
row = m.com_dim;
col= m.row_dim;
}
[code]....
this works well with my static implementation, but when i try it in dynamic it gives me errors. the function has to be the same for both dynamic and static implementation
View 4 Replies
View Related
Apr 5, 2014
I'm trying to create a public and static field in a class called ResourceManager. But when trying to access the field even from inside the class it wont work. I'm getting this error message:
Error 1 error LNK2001: unresolved external symbol "public: static int ResourceManager::num" (?num@ResourceManager@@2HA)
Here's my code:
ResourceManager.h
Code:
class ResourceManager {
public:
static int num;
static void loadContent();
[Code] .....
I'm using Visual Studio 2012.
View 2 Replies
View Related
Jan 27, 2015
I was working on template and found the linker error while compiling the code.
Below is the code:
Code: //Template1.h: Header file where template define
#ifndef __Template1_H__
#define __Template1__
template <typename T,typename T1> class A
{
T a;
T1 b;
public:
A(T ,T1 ) ;
[code].....
View 8 Replies
View Related
Dec 3, 2014
How to assign the array in object Q to the 12 months, Dec through Jan. I then have to sort the array and display the strings from Jan to Dec.
// main.cpp
#include <iostream>
#include <string>
#include <cstring>
#include <ctime>
#include <algorithm>
using namespace std;
// Declare template class
template <class T, int n>
[Code] ....
View 8 Replies
View Related